我在一个应用程序中工作,在这个应用程序中,我必须保持数据的序列化,每个数据单元都有一个序列号,我检查序列号是否比前一个序列号大1,如果是,我将接收的计数增加1。我的问题是,是否有区别:
以及
谢谢。
发布于 2012-06-15 07:15:00
对我来说,这听起来像是一个经典的过早优化问题。通常增加值意味着"fetch original->change->store",而赋值是"fetch other->store new“。"other“可能已经被获取了,因此节省了更多的时钟周期。因此,赋值可能会更快。
但是递增1通常被编译器和CPU优化得很好,所以它不需要任何获取或存储。它可以很好地在一个CPU命令中完成,从而消除任何差异,并且实际上使增量1在性能方面可能更好。
迷惑了?好的。
重点是,这是你应该而不是正在做的那种优化,除非你基准测试了一个瓶颈。然后,您对选项进行基准测试,并选择最佳选项。
https://stackoverflow.com/questions/11042565
复制相似问题