【问题标题】:Does adding [Serializable] to the class have any performance implications?将 [Serializable] 添加到类是否会对性能产生影响?
【发布时间】:2010-11-27 00:53:33
【问题描述】:

我需要将 [Serializable] 属性添加到对性能极为敏感的类。

这个属性会对类的操作产生任何性能影响吗?

【问题讨论】:

  • 只要创建一个属性实例。为什么,你注意到了什么?
  • 我只是提前询问,这样我就不必创建另一个解决方案,如果这有任何性能问题。

标签: c# visual-studio-2008 performance attributes serializable


【解决方案1】:

属性类的实例仅在首次访问时创建。如果您不对特定类进行任何序列化,则永远不会调用 SerializableAttribute() 构造函数,因此不会导致任何性能问题。

这是一篇关于属性构造函数的有趣文章: http://www.codingonthetrain.com/2008/10/attribute-constructors.html

【讨论】:

    【解决方案2】:

    属性是元数据注释,因此它们不会在运行时为类增加权重,除非运行时以某种方式解释它们,从而使其以不同方式对待类。

    [Serializable] 只是一个标记属性,用作约定来指示该类是可序列化的,它没有任何作用,并且运行时不会以任何特殊方式对待这些类。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多