Kir*_*rby 1 java bit-manipulation bit-shift
问题#1
在Java中,使用单个语句移动相同数量的转移费用是多倍?
例如,是
int x = 5;
x = x << 16;
Run Code Online (Sandbox Code Playgroud)
比...快
int x = 5;
for (int i=0; i<16; ++i) {
x = x << 1;
}
Run Code Online (Sandbox Code Playgroud)
那么,怎么样
int x = 5;
for (int i=0; i<16; ++i) {
x = x*2;
}
Run Code Online (Sandbox Code Playgroud)
问题2
我是否可以使用在线资源来确定Java中的各种按位操作性能,这样我就不必浪费StackOverflow用户的时间了?:-)
...这样我就不必浪费StackOverflow用户的时间了?
你也在浪费自己的时间.编写应用程序的完整原型,对其进行概要分析,然后对其进行优化.我很确定你会发现瓶颈不是由于位移.
这有点过早地优化过早的优化.
"x << 16"的精确性能是什么?它与"x << 1"的速度相同吗?
是的,它是一样的.但从技术上讲,它实际上取决于编译器,JVM实现,JIT,CPU架构...... 在这种情况下,Java规范不会对执行时间施加任何限制.