循环计算中看到的小问题

今天一同事说到java的运行效率是js的10倍。吾深感好奇,差这么多吗?遂写个小程序试一下,程序只是循环加1,但是在运行过程中会有执行时间大大增加的时候出现,无论java或是js都是这样。搞不清究竟是什么原因,请高人指点。

先贴上本机配置。
Intel(R) Core(TM)2 Quard CPU
Q8400 @ 2.66GHz
2.66 GHz , 1.98 GB 的内存。

Java版本

E:\Workspace\java\test>java -version
java version "1.6.0_26"
Java(TM) SE Runtime Environment (build 1.6.0_26-b03)
Java HotSpot(TM) Client VM (build 20.1-b02, mixed mode, sharing)


浏览器使用了chrome12和chrome8的两个版本。

先上代码。


<input type="button" value="click" onclick="test() ;">
<br>
<div id="testDiv"></div>
<script type="text/javascript">
var i=0,j=0,k=0;
var resultStr = null ;
var beginTime = 0 ;
var endTime = 0 ;
var interval = 0 ;
var testDiv = document.getElementById("testDiv") ;
function test(){
for(i=0;i<1000;i++){
beginTime = new Date().getTime() ;
for(j=0;j<100000;j++){
k++
}
endTime = new Date().getTime() ;
interval = endTime - beginTime ;
resultStr = "cost " + interval + " milliseconds" ;
testDiv.innerHTML = testDiv.innerHTML + resultStr + "<br>" ;
}
}
</script>


然后是Java代码。

public class Test {

public static void main(String[] args) {
int i=0,j=0,k=0;
long beginTime=0,endTime=0,interval=0 ;
StringBuilder result = new StringBuilder() ;
for(i=0;i<1000;i++){
beginTime = System.currentTimeMillis() ;
for(j=0;j<1000000;j++){
k++ ;
}
endTime = System.currentTimeMillis() ;
interval = endTime - beginTime ;
result.append("cost ") ;
result.append(interval) ;
result.append(" milliseconds") ;
System.out.println(result.toString()) ;
result.delete(0,result.length()) ;
}

}

}


然后是执行结果,先是java的:

cost 0 milliseconds
cost 0 milliseconds
cost 16 milliseconds
cost 0 milliseconds
cost 0 milliseconds
cost 0 milliseconds
cost 0 milliseconds
cost 0 milliseconds
cost 0 milliseconds
cost 0 milliseconds
cost 0 milliseconds
cost 0 milliseconds
cost 0 milliseconds
cost 0 milliseconds
cost 0 milliseconds
cost 0 milliseconds
cost 0 milliseconds
cost 0 milliseconds
cost 0 milliseconds
cost 0 milliseconds
cost 15 milliseconds
cost 0 milliseconds
cost 0 milliseconds
cost 0 milliseconds
cost 0 milliseconds
cost 0 milliseconds
cost 0 milliseconds
cost 0 milliseconds
cost 0 milliseconds
cost 0 milliseconds
cost 0 milliseconds
cost 0 milliseconds
cost 0 milliseconds
cost 0 milliseconds
cost 0 milliseconds
cost 0 milliseconds
cost 0 milliseconds
cost 0 milliseconds
cost 16 milliseconds
cost 0 milliseconds
cost 0 milliseconds
cost 0 milliseconds


js的执行结果:
chrome12的执行结果

cost 14 milliseconds
cost 14 milliseconds
cost 14 milliseconds
cost 10 milliseconds
cost 4 milliseconds
cost 3 milliseconds
cost 3 milliseconds
cost 4 milliseconds
cost 4 milliseconds
cost 3 milliseconds
cost 4 milliseconds
cost 3 milliseconds
cost 3 milliseconds
cost 4 milliseconds



chrome8的执行结果

cost 15 milliseconds
cost 15 milliseconds
cost 0 milliseconds
cost 0 milliseconds
cost 0 milliseconds
cost 16 milliseconds
cost 0 milliseconds
cost 0 milliseconds
cost 0 milliseconds
cost 15 milliseconds
cost 16 milliseconds
cost 0 milliseconds
cost 15 milliseconds
cost 0 milliseconds
cost 16 milliseconds
cost 0 milliseconds
cost 0 milliseconds
cost 0 milliseconds


问题:为什么java和chrome8在运行过程中会有计算时间突然加长的时候?

坐等高人。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值