我在项目中用浮动替换了所有双打,从而提高了性能。
现在我所有的功能,不作为参考参数。如果我将它们作为参考传递,我会保存一份副本。如您所知,参数如果未作为参考传递,则会复制到函数中。
我想知道是否值得为200个功能做这件事,我应该期待改进吗?
谢谢
答案 0 :(得分:1)
一般没有。
黄金法则:
过早优化是邪恶的根源
首先,您会发现瓶颈,程序中最慢的部分,然后进行优化。 然后你找到一个新的瓶颈并重复。
首先,您首先要优化算法,然后是数据结构,然后是数据,然后是代码,最后是技术。
答案 1 :(得分:1)
除非方法在一秒钟内被调用数千次,否则我不会改变行为。
你知道通过引用传递东西可能会破坏你的类背后的逻辑。除非您想要更改某些内容,否则有些内容无意修改或更改。 (使用访问器方法更改实例变量)。
否则它将是micro-optimization的号召,并且绝对不值得花时间修改200种方法,只是为了小幅提升性能。
对象在方法中创建的值类型位于堆栈上 - 这意味着它们不再需要被清除一次。
答案 2 :(得分:1)
不,通过引用传递float
,您将无法获得任何性能优势。
在32位系统上,float
与指向它的指针大小相同。在64位系统上,指针的大小是float
的两倍。
此外,即使指针小于值类型,通过引用传递意味着该方法也需要通过引用访问该值,这超过了较小参数类型的性能增益。