我有以下代碼:當-O3設置到底發生了
int main()
{
int i=0;
for(i=0;i<10000000;i++)
//do something
return 0;
}
當我運行使用此代碼「GCC -o文件file.c」命令,它是越來越在244毫秒的執行和當我使用'gcc -O3 file.c -o file'執行相同的代碼時,它會在0毫秒內執行(很少顯示爲零的時間)。我無法理解-O3標記所做的優化是如何在執行過程中獲得大量速度的。
關於'-O3'優化的任何鏈接,文檔或解釋(除了gcc.gnu.org,我已經看到並發現這裏給出的信息不足以爲我提供一個體面的解釋和洞察什麼)非常感謝。
也許它意識到沒有使用循環的副作用並代之以nop – amdixon
如果您想了解發生了什麼問題,請爲我們提供由gcc生成的彙編代碼。現在我們可以猜測。另外我認爲,在這種情況下,「做某件事」具有意義。 – DawidPi
這取決於很多*做什麼*做! –