我有一個很大的問題。我有一個共同的圖書館,用於我的項目。該庫密集使用boost.spirit
和boost.fusion
。不幸的是,圖書館是約。 700Mb的大小。所有的boost.spirit
-heavy代碼被使用,它運作良好。可以採取哪些措施來減少產量?是否有一種工具可以幫助確定哪些模板實例會浪費大部分空間?如何減少模板沉重的C++代碼的輸出大小?
起初,我決定將所有精神感知代碼移動到cpp文件。其次,我將嘗試使用不同的編譯器標誌來優化大小。我不知道還有什麼要做。
更新(詳細信息)
我使用的GNU工具鏈。巨大的庫實際上是一個靜態庫。使用700Mb庫的可執行文件大小爲200Mb。至少一半的代碼位於* .h文件中。一些boost.spirit
語法(很模板很重的東西)也位於* .h文件中。
乾杯!
感謝「visibility」屬性,不知道它。 – Lazin