cms*_*sjr 15 comparison variable-assignment
我已经开始阅读算法了,我一直想知道,当处理相同类型的原语时,这是更昂贵的操作,分配还是比较?语言之间的差异很大吗?
微优化几乎总是错误的做法.除非程序运行得太慢,否则甚至不要启动它,并使用分析器确定慢速部件的确切位置.
一旦你完成了这个,我的建议是看到改进代码和数据的位置,因为缓存未命中几乎肯定比次优指令更糟糕.
这样做,在相当奇怪的情况下,您可以使用基于任务或基于比较的方法,尝试两者并计时.微优化是一种数字游戏.如果数字不够好,找出原因,然后验证你所做的事情是否真的有效.
那么,比较你的意思是什么?有条件的跳转会给任何模糊的现代处理器带来问题,但是不同的处理器会做不同的事情,并且无法保证任何给定的处理器都会减慢速度.此外,如果其中一个导致高速缓存未命中,那么无论如何都可能是较慢的.
最后,语言通常被编译为机器代码,而比较和赋值等简单的东西通常会被编译为相同的.最大的区别将是CPU的类型.