簡體   English   中英

預編譯頭文件-選擇文件

[英]Precompiled headers - choosing files

我試圖選擇適當的文件作為預編譯頭,以減少編譯時間。 我使用VS2013。 我知道應該是代碼中的文件(例如,示例庫等,以便不重新編譯所有內容)或代碼中的文件我不會改變太多,或者代碼中的文件無處不在或幾乎無處不在。

如果我有150個要編譯的文件,其中25個包含一些頭文件X.hpp(來自外包庫),該怎么辦? 我應該將其添加到預編譯頭文件中嗎? 是否有意義? 其余文件(不包含X.hpp的文件)如何? 它們不會更長的編譯時間嗎?

您知道預編譯頭文件的大小如何影響編譯時間嗎? 我有10GB的內存。 像Visual Studio允許的那樣,添加到stdafx.h文件是個好主意嗎?

如果您的文件包含在許多翻譯單元中,則可以,它應該放在PCH中。

構建時間優化是一個反復試驗的過程。 PCH可以幫助分攤編譯某些東西的成本,但這不是一個完整的解決方案。 如果您大量使用模板(生成編碼),那么模板實例化會導致大量的構建開銷,而PCH可能無法解決這些開銷。

您還應該考慮前向聲明和pimpl習慣用法。 以我的經驗,在大型項目中,減少標頭依賴性通常可以最大程度地減少構建時間。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM