考慮一個簡單的情況:從源代碼構建編譯器會導致更好的優化嗎?
我下載一個C++編譯器的預編譯的二進制文件(比如CLang
或GCC
或其他任何東西),我的通用操作系統(不是窗口)。我編譯我的代碼,其中包含一些計算昂貴的數學計算,其優化標記爲-O3
,我的執行時間爲T1
。
在另一次嘗試中,這次不是使用預先構建的二進制文件,而是下載源代碼並在我的通用計算機上自行構建編譯器。我使用相同的優化標誌編譯相同的代碼,實現時間T2
?
請問T2 < T1
或者他們會差不多呢?
換句話說,執行時間與編譯器的編譯方式無關嗎?你的代碼的
您是否懷疑預構建的二進制文件是以這種方式構建的,而忽略了它可能做的某些優化?如果是這樣,爲什麼? – geoffspear
我只希望編譯時間改變。 – Nobody
@正確!我正在使用GCC,其他實驗室的同事都是CLANG的用戶。然而,我們所做的本質上是相似的,並不完全相同。他們告訴他們在叮噹時有更好的結果,但是,當我切換到叮噹時,我意識到我的GCC還是更好。當問他們時,他們都表示他們已經編譯了叮噹,而我使用了預製。我只是想知道這是否相關。 – Pouya