2016-02-12 55 views
1

我剛開始學習鏈接時間優化,所以我不確定這是否是一個愚蠢的問題。庫中的鏈接時間優化

我正在寫一個圖書館,主要用於我們組織內部。有大量的類,具有公共和私有函數,並且使用Boost以Python模塊的形式導出一小部分公共函數。所有其他功能,包括公共和私人功能,都只在圖書館內使用。我嘗試使用-flto-fuse-linker-plugin,並發現性能不平凡的改進。我想知道是否可以向優化器傳遞任何函數,除了那些導出到Python的函數,可能會進行優化,因爲該庫將僅通過python模塊使用。

我會很感激任何意見/建議。

回答

1

你不說出你的平臺,我的建議在諸如Linux和Solaris ELF目標纔會運作,* BSD

您可以用符號知名度玩,基本上告訴編譯器/連接器僅暴露方法/函數用於與python進行接口。鏈接:https://gcc.gnu.org/wiki/Visibility

第二個建議是使用金連接器,爲我的應用程序/金連接器編譯共享庫運行一點點(但可測位)更快

UPDATE

這裏是鏈接我的問題/討論WRT金VS BFD連接

Is binary linked with gold linker running faster?

+0

我們在Linux上。感謝您的回答,我會探討這一點。 – SPMP

+0

@ user2308211找到與我的問題鏈接,請檢查更新 –