while(count < 30000000){
malloc(24);
count++;
}
上面的代码在我用 gcc -O0 编译的计算机上运行了大约 170 毫秒。但是,在 x > 0 时使用 -Ox 进行编译,优化器会巧妙地发现所请求的内存永远不会被使用,因此它被排除在优化的可执行文件之外。它是如何做到的?
while(count < 30000000){
malloc(24);
count++;
}
上面的代码在我用 gcc -O0 编译的计算机上运行了大约 170 毫秒。但是,在 x > 0 时使用 -Ox 进行编译,优化器会巧妙地发现所请求的内存永远不会被使用,因此它被排除在优化的可执行文件之外。它是如何做到的?