在重置之前检查重置值的值 - 性能影响?

Fai*_* Ng 4 java variables performance

我有一个变量,每秒读取和更新数千次.它需要定期重置.但"一半"的时间,该值已经是重置值.在重置(写入操作)之前首先检查值(看它是否需要重置)是一个好主意,或者我应该重置它而不管它?主要目标是优化代码以提高性能.

为了显示:

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;
}
Run Code Online (Sandbox Code Playgroud)

我尝试使用上面的程序来测试2个场景(通过取消/评论第2个"if"行),但任何差异都会被运行持续时间的自然差异所掩盖.

谢谢.

Boh*_*ian 5

不要检查它.

这是更多的执行步骤=更多周期=更多时间.


顺便说一句,你打破了一个基本的软件黄金规则:"不要尽早优化".除非你有确凿的证据证明代码是性能问题,否则你不应该看它.(注意,这并不意味着您在没有性能的情况下编写代码,您仍然遵循正常的最佳实践,但是您不添加任何特殊代码,其唯一目的是"与性能相关")