私が理解する限り、コンパイル時に属性が生成されます(そうでなければ、relflectionを介して属性をロードすることはできません)。とにかく、属性が実行時にパフォーマンスの問題につながる特定のケースはありますか?C#属性を使用する場合のパフォーマンスの問題?
7
A
答えて
3
実行時に属性がパフォーマンス上の問題を引き起こす可能性があります。
あなたのプログラムがコード内の属性を過度に探している場合のみ。
属性は、何か探しているときにのみ役立ちます。あなたのクラスを[MyAwsomeAttribute]
で飾り、何も探していない場合は、の性能差はありません。
パフォーマンスの違いは、所有する属性の数によって異なります。それが発見された場合。 (この能力を持っていると仮定すると、多くの属性は純粋にメタデータです)。
良い例は、WCFのカスタム動作属性であり、詳細かつ潜在的に複雑な実装方法です。
0
(MickyDの答えをテストするために)
でも、このコード、属性はcontructedされることはありませんので、本当に悪属性はまだ パフォーマンスへの影響を持っていないと。
class Program
{
static void Main(string[] args)
{
Console.WriteLine(new Foo().ToString());
Console.ReadLine();
}
}
[ThrowExceptionException]
public class Foo
{
}
public class ThrowExceptionAttribute : Attribute
{
public ThrowExceptionAttribute()
{
throw new NotImplementedException();
}
}
もちろん、属性を反映するとパフォーマンスに影響を与えることができます。 しかし、あなたの質問は、 "任意のコードを実行するとパフォーマンスに影響がありますか?"となります。
関連する問題
- 1. バックグラウンドを使用した場合のAndroid ViewPagerのパフォーマンスの問題
- 2. 複数のウィジェットを使用する場合のjQuery UIのパフォーマンスの問題
- 3. 多くのAOPリクエストスコープBeanを使用した場合のパフォーマンス上の問題
- 4. PythonアプリケーションのTesseract OCRを使用した場合のパフォーマンスの問題
- 5. 誰かがgetObjectsUnderPointを使用した場合のパフォーマンスの問題を含む、
- 6. ngx-datatableを使用する場合のタイトル属性の設定
- 7. リスト属性にバネデータサンプルマッチャーを使用する方法 - クエリの問題
- 8. C#のパフォーマンスの問題
- 9. CoreData属性アクセスの問題
- 10. border-width属性の問題
- 11. Magento2属性の問題
- 12. レンダスクリプトのCスタイルのポインタ使用パフォーマンスの問題
- 13. 属性エラーヘルプPygameの場合
- 14. System.jsを使用したパフォーマンスの問題
- 15. UNIONを使用したパフォーマンスの問題
- 16. ハイバーネイトでproperty-ref属性を使用する場合
- 17. MySQLの負荷が重い場合のパフォーマンスの問題
- 18. Rails 4.1:HAMLを使用する場合の間隔の問題
- 19. ConcurrentHashMapを使用する場合の同時処理の問題
- 20. フォーム認証を使用する場合のセッションタイムアウトの問題
- 21. Qake Creatorを使用する場合のCMake設定の問題
- 22. Kohana 3.2でJelly ORMを使用した場合の互換性の問題
- 23. 安心してサービスを使用したリクエストマッピング属性の問題
- 24. textExtractionをjQueryテーブル・インジケータで使用する場合の問題
- 25. ratchetphp/Pawl websocketクライアントを使用する場合の問題
- 26. "優先度"タグを使用する場合、TESTNGプログラムの問題
- 27. ivy:publishタスクを使用する場合の問題
- 28. IAppBuilder.UseWebApiを使用する場合の問題
- 29. CXF 2.5.2とJBoss AS 7を使用する場合の問題
- 30. CUDA:tex2D()を使用する場合の問題
いいえドットネットのフレームワークコード - _attributesはどこにでもあります:)_例:https://referencesource.microsoft.com/#System/compmod/system/collections/generic/linkedlist.cs,df5a6c7b6b60da4f – Mafii
属性は次のようになります。それらにアクセスしようとするときにだけ遅くなる(属性)。それらを見ると、それらが作成されます。 – xanatos
実行時に属性を取得する際に、明示的なコードが必要です。属性が必ずしも正しい解決法であるとは限りません。[こちらを読む](https://stackoverflow.com/a/3378482/17034)。 –