|
|
1
0
book on Business Objects 但是我通过强制属性的实现者维护一个类型化的后备字段来避免对象装箱问题。我知道这是一种权衡,但在我的例子中,我看重的是性能而不是声明新属性的简单性。为了在整个属性查找和管理过程中管理类型,我大量使用Lambda表达式和泛型,到目前为止还不错,我击败了依赖对象和CSLA的性能。 要回答您的问题,是的,使用对象装箱会对性能造成影响,而且对于这些属性支持的值类型,您将在堆中为每个值保留一个额外的指针,这通常会使这些值的内存占用增加一倍。至于性能会受到多大的影响,则取决于对这些属性的读写频率以及其他因素。如果您想了解性能差异,那么最好制作一个小的测试应用程序,运行一个循环,将一些整数作为一个对象装箱并取消装箱,而不是将相同的值存储在常规字段中。我的猜测是,不做物体拳击和非拳击你可能会提高你的表现至少2倍,但不要相信我做测试。 |