我正在开发一个应用程序,我必须保持数据排序,每个数据单元都有一个序列号,我检查序列号是否比前一个大 1,如果是,我增加我收到的以 1 计数。我的问题是,两者之间有区别吗:
1. 将我收到的计数增加一。
和
2. 将最后接收到的序列号分配给接收计数。
谢谢。
最佳答案
对我来说,这听起来像是一个经典的过早优化问题。通常增加值意味着“获取原始->更改->存储”,而分配将是“获取其他->存储新的”。 “其他”可能已经被获取,从而节省更多的时钟周期。因此分配可能会更快。
BUT 加 1 通常会被编译器和 CPU 优化得很好,因此它不需要任何提取或存储。它可以在一个 CPU 命令中很好地完成,从而消除任何差异,实际上,从性能角度来看,增加 1 可能是更好的选择。
困惑?好。
要点是,这是您不应该进行的优化,除非您对瓶颈进行了基准测试。然后你对选项进行基准测试并选择最好的。
关于c - 赋值与增量操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11042565/