NGen'e, farklı bir montajda bile uygulandığı yöntemi satır içi yapmanın uygun olduğunu bildirir.
Örneğin:
String.Equals
vardır [TargetedPatchingOptOut]
- Çağıran bir program yazıyorsunuz
String.Equals
- Maksimum performans için bu programda NGen çalıştırıyorsunuz
- NGen
String.Equals
, yöntem çağrısı talimatını yöntemdeki gerçek kodla değiştirerek çağrıyı satır içine alır .
Yöntem çağrıları (biraz) pahalıdır, bu nedenle bu sık kullanılan yöntemler için bir performans artışıdır.
Ancak, Microsoft bir güvenlik açığı bulursa String.Equals
, yalnızca güncelleştirilemez mscorlib.dll
, çünkü bu sadece NGen'd olan montajı etkilemez. (Referans vermeden ham makine koduna sahip olduğundan String.Equals
).
Bu gerçekleşirse, güvenlik güncelleştirmesinin NGen mağazasını temizleyeceğini varsayıyorum.
Bu özniteliğin yalnızca .NET Framework derlemelerinde yararlı olduğunu unutmayın. Kendinize ihtiyacınız yok. Bununla ilgili daha fazla bilgiyi burada bulabilirsiniz: https://stackoverflow.com/a/14982340/631802