確定程序的「合理」編譯時間量是否有任何經驗法則?顯然,「合理」意味着什麼是主觀的,但所有的東西都是平等的,例如,基於控制檯的「Hello,World」不應該花2個小時來編譯。給出一個具體的例子 -估計編譯時間?
給定一個C代碼庫,X代碼行,gcc優化級別Y ......有沒有合理的方法來預測編譯時間?關於什麼是'合理'的時間量的任何意見?
澄清
感興趣的參數在這裏只是代碼依賴,而不是CPU,內存,網絡依賴。
確定程序的「合理」編譯時間量是否有任何經驗法則?顯然,「合理」意味着什麼是主觀的,但所有的東西都是平等的,例如,基於控制檯的「Hello,World」不應該花2個小時來編譯。給出一個具體的例子 -估計編譯時間?
給定一個C代碼庫,X代碼行,gcc優化級別Y ......有沒有合理的方法來預測編譯時間?關於什麼是'合理'的時間量的任何意見?
澄清
感興趣的參數在這裏只是代碼依賴,而不是CPU,內存,網絡依賴。
對於在合理開發機器(2 + GHz,4 + GiB RAM)上從合理來源構建的最合理程序,編譯單個源文件的答案應該是「幾秒鐘」。以我的經驗來說,分鐘範圍內的任何事情通常都會表示一個問題。然後編譯一個完整的程序所需的時間由需要編譯的文件數量來控制;事實上,編譯20,000個文件需要的時間比編譯20個文件花費的時間要長 - 大約是其中的一千倍。 (合理的來源通常有10K行以下的源文件和大約1K行以下的標題 - 這兩個指南都有很多例外,並且這兩個數字都相當慷慨。)
但這一切都要看。如果你的頭文件位於網絡文件系統上,那麼編譯速度可能比在本地文件系統上慢 - 除非你的本地驅動器速度很慢,網絡速度非常快,並且由SSD支持,並且...哦,天哪;只有很多因素,因此幾乎不可能提供一個好的答案!
而且,您可能已經添加了,編譯時間通常是優化級別的增加函數。 –
其他因素,除了在喬納森的回答中提到的一個人的是:編程語言,編碼風格,Compliler版本,P碼或二進制代等
所有你能做的,只能是基地的時間長短估計它請記住「最後一次」,請記住,如果您更改了「常用」,則可能會導致重新編譯大量內容。 –