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

标签 java performance variables

我有一个每秒读取和更新数千次的变量。它需要定期重置。但是“一半”的时候,这个值已经是重置值了。在重置(写入操作)之前先检查该值(看它是否需要重置)是个好主意,还是我应该无论如何都重置它?主要目标是优化代码以提高性能。

举例说明:

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/

相关文章:

c++ - Q : std::function 在同一个数组中有不同的类型

javascript - 在 JavaScript 中声明多个变量

c++ - 用户定义的函数和声明变量有什么区别? C++

java - 每个线程是否可以有一个唯一的静态变量?

java - MQ 发布/订阅特定于域的接口(interface)通常比点对点更快吗?

java - 为什么服务器提示缺少 aspectOf?

asp.net - 监控 ASP.NET 应用程序内存和磁盘使用情况

c# - 什么对解析 : regular expressions or linq? 更好

java - 用一个实例更新 weka 中的分类器

java - Jpanel 和 Jframe 的重绘方法有何不同?