c – 封装v性能
简单的问题:
我真的很喜欢封装的想法,但我真的不知道它是否值得它是一个性能危急的情况. 例如: x->var; 比…更快 x->getVar(); 因为函数调用开销.有没有快速和封装的解决方案? 解决方法
>“如果内联getVar函数没有开销”
>“如果getVar()只是返回var;并且是内联和非虚拟的,那么两个表达式应该针对相同的事情进行优化” >“所有可能的getVar()都可以内联” Rafferty先生可以假设代码将被内联吗?不是“应该”或“可能”.在我看来,这是C的一个问题:它并不是特别的所见即所得:你不能确定它会产生什么代码.当然,使用oo有好处,但如果执行效率(性能)很重要C(或C#或Java)不是明显的选择. 另一个话题 有很多关于“过早优化”是所有邪恶的根源的讨论,因为没有人得到不成熟的东西,许多程序员认为优化是所有邪恶的根源. 在这些情况下,我发现提出原始报价是有帮助的,这样每个人都可以看到他们所遗漏的内容(更不用说误解和错误引用): “我们应该忘记效率低下,大约97%的时间说:过早的优化是所有邪恶的根源.但我们不应该把这个关键的3%的机会放弃.” 大多数人将引用归功于Tony Hoare(QuickSort之父)和一些Donald Knuth(计算机程序设计艺术). 关于引用可能或不可能的含义的信息性讨论可以在这里找到:http://ubiquity.acm.org/article.cfm?id=1513451 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |