黑马程序员技术交流社区

标题: 一个奇怪的问题 [打印本页]

作者: 闪客sun    时间: 2016-11-23 17:28
标题: 一个奇怪的问题
int a = 1000;
for(int i =1;i<100000000;i++){
int b = a/2;
}
这段程序会运行约1400毫秒。

但如果把定义a的语句放在循环里。
for(int i =1;i<100000000;i++){
int a = 1000;
int b = a/2;
}
凭感觉来讲应该会运行更长时间才对,但结果确是运行了,130毫秒!

效率反而提高了一大截!求解~

作者: 守望の希望    时间: 2016-11-23 17:45


作者: 呱码农    时间: 2016-11-23 18:44
是不是因为全局变量的生存时间比较长,所以比较慢呀。我也不知道
作者: 闪客sun    时间: 2016-11-23 19:21
呱码农 发表于 2016-11-23 18:44
是不是因为全局变量的生存时间比较长,所以比较慢呀。我也不知道

这个倒是真有可能,明天我问问老师。其实一开始我想比较右移运算符和除法的效率,结果意外发现了这个问题





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2