0
|
LuminousNutria · 技术社区 · 6 年前 |
![]() |
1
74
自从
您可以通过查看OpenJDK中JIT编译器的源代码,或者让JVM转储JIT编译的本机代码并检查代码来确认这一点。
|
![]() |
2
19
我午饭时有点时间:
结果是:
|
![]() |
3
11
我怀疑是否有任何显著的区别,即使有,我敢打赌它可能在编译过程中被优化掉了。当你尝试微优化这样的东西时,你是在浪费时间。首先使代码可读并正确,然后如果您有性能问题,请使用 ,然后担心在适当的情况下选择更好的数据结构/算法, 然后 担心如何优化探查器突出显示的部分。 |
![]() |
4
7
|
![]() |
5
4
既然如此,为什么不做一个逆循环:
|
![]() |
6
3
将其存储在变量中可能会稍微快一点。但如果一个剖析者指出这是一个问题,我会非常惊讶。
在字节码级别,通过
|
![]() |
7
2
这个答案是从C的角度来看的,但我认为Java也是如此。 在C#,成语
被识别为在数组上迭代,因此在循环中访问数组时避免边界检查,而不是每次访问数组时。 这可能会或可能不会被代码识别,例如:
这种优化在多大程度上是由编译器执行的,而抖动我不知道,特别是如果它是由抖动执行的,我希望所有3个都能生成相同的本机代码。
|
![]() |
8
1
数组长度是一个常量,JIT编译器应该在这两个实例中都能看穿它。我希望得到的机器代码在这两种情况下是相同的。至少对于服务器编译器是这样。 |
|
user29759326 · 如何返回递归函数中的最后一个值? 4 月前 |
|
malife89 · 将java中的字符串读取为正确的日期格式 4 月前 |
![]() |
Tim · 在java中,有没有更快的方法将字节数组写入文件? 5 月前 |
![]() |
rudraraj · java中未声明最终变量 5 月前 |
![]() |
Bala Ji · 以下BFS的实施效率如何? 5 月前 |