O Groovy Gurus,
此代码段大约在1秒内运行
for (int i in (1..10000000)) {
j = i;
}
Run Code Online (Sandbox Code Playgroud)
而这个需要将近9秒
for (int i = 1; i < 10000000; i++) {
j = i;
}
Run Code Online (Sandbox Code Playgroud)
为什么会这样?
好.这是我的理由?
如果将两个脚本转换为字节码,您会注意到
ScriptBytecodeAdapter .compareLessThan - > ScriptBytecodeAdapter .compareTo - > DefaultTypeTransformation .compareTo
类型处理包中还有其他类,它专门为数学数据类型实现compareTo方法,不确定为什么它们没有被使用,(如果它们没有被使用)
我怀疑这是第二个循环需要更长时间的原因.如果我错了或遗漏某些东西,请再次纠正我...
归档时间: |
|
查看次数: |
3345 次 |
最近记录: |