今天编程遇到一个“奇怪”的现象,for循环里边,10^9次运算,居然0ms就结束,非常的不解,原来是VS自动优化导致的,具体如下:
先看一下我测试的代码:
int a = 0;
while (1)
{
int i;
for (i = 0 ; i < 100000; i ++)
{
for (int j = 0 ; j < 10000 ; j ++)
{
a = i + j;
}
}
cout << i << endl;
}
读者可以试一下,使用Release版的话,这个结果肯定是0ms就把结果输出:
而使用Debug版的话,会好几秒才输出一次,为什么呢?因为Release版的话,VS做了很多优化,你会发现,上边那个代码,for循环对于while里边的其他代码毫无影响,所以我感觉VS将这段代码优化了(我不知道怎么查看优化的代码,还希望看到的朋友知道的话请留言提醒一下,非常感谢):首先检查里边那层j的for循环对于它外边的变量指向的内存是否会有影响,如果没有影响&#