什么更昂贵,比较或分配?

时间:2009-03-09 19:55:19

标签: comparison variable-assignment

我开始阅读Algorithms并且在处理相同类型的原语时,我一直在想,这是更昂贵的操作,分配还是比较?语言之间的差异很大吗?

2 个答案:

答案 0 :(得分:9)

您怎么看?

在最低级别,一次执行两次读取,另一次执行读取和写入操作。

但你为什么要关心?你不应该关心这个级别的表现。优化Big-O

答案 1 :(得分:6)

微优化几乎总是错误的做法。除非程序运行得太慢,否则甚至不要启动它,并且使用分析器确定慢速部件的确切位置。

一旦你完成了这个,我的建议是看看改进代码和数据的位置,因为缓存未命中几乎肯定比次优指令更差。

这样做,在相当奇怪的情况下,您可以使用基于任务或基于比较的方法,尝试两者并计时。微优化是一种数字游戏。如果数字不够好,找出原因,然后验证你所做的事情是否有效。

那么,比较是什么意思?有条件的跳转会给任何模糊的现代处理器带来问题,但是不同的处理器会做不同的事情,并且无法保证任何给定的处理器都会减慢速度。此外,如果其中一个导致高速缓存未命中,那么无论如何都可能是较慢的。

最后,语言通常被编译为机器代码,比较和赋值等简单的东西通常会编译成相同的。最大的区别将是CPU的类型。