リフレクターを使用していくつかのフレームワーク クラスを調べていて、いくつかのメソッドとプロパティに次の属性があることに気付きました
[TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
上記のコメントをどこかで見たことがあり、フォローアップしたことはないと確信しています。
これが C# やその他のコンテキストで何を意味するのか教えてください。
リフレクターを使用していくつかのフレームワーク クラスを調べていて、いくつかのメソッドとプロパティに次の属性があることに気付きました
[TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
上記のコメントをどこかで見たことがあり、フォローアップしたことはないと確信しています。
これが C# やその他のコンテキストで何を意味するのか教えてください。
これは、別のアセンブリであっても適用されるメソッドをインライン化してもよいことを NGen に伝えます。
例えば:
String.Equalsもっている[TargetedPatchingOptOut]String.EqualsString.Equals呼び出しをインライン化し、メソッド呼び出し命令をメソッド内の実際のコードに置き換えます。ただし、Microsoft が にセキュリティ ホールを見つけた場合、NGen したばかりのアセンブリには影響しないため、String.Equals単に を更新することはできません。mscorlib.dll(参照せずに生のマシンコードを持っているためString.Equals)。
それが実際に起こった場合、セキュリティ更新プログラムによって NGen ストアがクリアされると思います。
この属性は、.NET Framework アセンブリでのみ役立つことに注意してください。自分の中では必要ありません。詳細については、https ://stackoverflow.com/a/14982340/631802 を参照してください。