我有一个每秒读取和更新数千次的变量。它需要定期重置。但是“一半”的时候,这个值已经是重置值了。在重置(写入操作)之前先检查该值(看它是否需要重置)是个好主意,还是我应该无论如何都重置它?主要目标是优化代码以提高性能。
举例说明:
Random r = new Random();
int val = Integer.MAX_VALUE;
for (int i=0; i<100000000; i++) {
if (i % 2 == 0)
val = Integer.MAX_VALUE;
else
val = r.nextInt();
if (val != Integer.MAX_VALUE) //skip check?
val = Integer.MAX_VALUE;
}
我尝试使用上面的程序来测试 2 个场景(通过取消/注释第二个“if”行),但是任何差异都被运行持续时间的自然差异所掩盖。
谢谢。
最佳答案
不要检查它。
更多的执行步骤 = 更多的周期 = 更多的时间。
顺便说一句,您正在打破基本的软件黄金法则之一:“不要过早优化”。除非您有确凿证据表明这部分代码存在性能问题,否则您不应该查看它。 (请注意,这并不意味着您在编写代码时不考虑性能,您仍然遵循正常的最佳实践,但您没有添加任何唯一目的是“性能相关”的特殊代码)
关于java - 在重置之前检查重置值的值 - 性能影响?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13689753/