2

我正在开发一个应用程序,我必须保持数据排序,每个数据单元都有一个序列号,我检查序列号是否比前一个大 1,如果是,我将接收到的计数增加 1 .我的问题是,是否有区别:
1. 将我收到的计数增加一。
AND
2. 将最后接收的序列号分配给接收计数。

谢谢。

4

1 回答 1

7

对我来说,这听起来像是一个经典的过早优化问题。通常增加值意味着“获取原始->更改->存储”,而分配将是“获取其他->存储新”。“其他”可能已经被获取,从而节省了更多的时钟周期。因此分配可能会更快。

但是以 1 为增量通常由编译器和 CPU 进行了很好的优化,因此它不需要任何获取或存储。它可以很好地在一个 CPU 命令中完成,因此消除了任何差异,事实上,增加 1 可能在性能方面更好。

使困惑?好的。

重点是,除非您对瓶颈进行基准测试,否则您应该进行这种优化。然后你对选项进行基准测试并选择最好的。

于 2012-06-14T23:15:00.337 回答