D中属性的开销是多少?

时间:2013-10-08 15:07:49

标签: d encapsulation micro-optimization

我应该公开我的一些班级数据,但是它应该在生产力要求很高的领域工作,所以我很自然地想知道,最好的方法是什么:坚持设计原则并通过属性进行这种阐述,或者忘记它,只是公开我的数据?

1 个答案:

答案 0 :(得分:4)

属性是一个函数调用,但它通常是一个可以内联的微不足道的....至少只要它是最终的并且你使用正确的编译器设置(gdc -O或ldc的优化。测试告诉我dmd -inline确实内联它!)。

现在,如果您正在使用gdc或ldc,则最终属性是免费的,因为它将被内联和优化。我不确定的虚拟属性函数。如果你正在使用dmd,那么函数调用的成本很低,所以如果它是一个紧凑的循环,你可能会获得一个公共字段的加速。