Xåp*_* - 4 java optimization performance jvm atomic
请考虑以下两个代码示例:
例1.
public void setValue(int value)
{
mValue = value;
}
Run Code Online (Sandbox Code Playgroud)
例2.
public void setValue(int value)
{
if (mValue != value)
{
mValue = value;
}
}
Run Code Online (Sandbox Code Playgroud)
假装您的任务是将一些Java代码优化到绝对最大值,超出所有常识.
第二个代码示例是第一个的优化吗?我的意思是,在最低级别的Java或JVM中if条件检查和int赋值之间是否存在任何差异(无论多么微小)?
第二种可能是反优化,因为在现代处理器上,分支往往很昂贵(主要是因为分支错误预测的代价非常高).
确定的唯一方法是在代表性输入上分析您的代码.请参阅如何在Java中编写正确的微基准测试?关于如何建立有意义的微观基准的一些指示.
请记住,如果相关代码不占整个CPU时间的很大一部分,那么世界上的所有优化都不会对应用程序的整体性能产生很大影响.
| 归档时间: |
|
| 查看次数: |
443 次 |
| 最近记录: |