2009-09-10 12 views
25

非常にパフォーマンスの高いクラスに[Serializable]属性を追加する必要があります。クラスに[Serializable]を追加するとパフォーマンスに影響はありますか?

この属性は、クラスの操作にパフォーマンス上の影響がありますか?

+0

属性のインスタンスを作成する場合に限ります。なぜ、あなたは気づいたのですか? –

+0

私はただちに尋ねているので、別の解決策を作る必要はありません。 – AngryHacker

答えて

23

属性クラスのインスタンスは、初めてアクセスされたときにのみ作成されます。特定のクラスでシリアル化を行わないと、SerializableAttribute()コンストラクタは呼び出されません。したがって、パフォーマンス上の問題は発生しません。

ここ属性コンストラクタについての興味深い記事があります:彼らは、実行時にクラスに重量を追加しないように、彼らはそれを作るある方法でランタイムによって解釈される場合を除き http://www.codingonthetrain.com/2008/10/attribute-constructors.html

7

属性は、メタデータアノテーションをしています異なったクラスを扱う。

[Serializable]は、クラスがシリアライズ可能であることを示すための規約として使用されるマーカー属性であり、効果がなく、ランタイムは特別な方法でクラスを処理しません。

関連する問題