假設我有一個由三個函數A,B和C組成的編譯單元.A從編譯單元的外部函數(例如它是一個入口點或回調函數)調用一次; B被A多次調用(例如它在一個緊密循環中被調用);每調用一次B就調用一次C(例如,它是一個庫函數)。通過A(通過B和C)的整個路徑對性能至關重要,儘管A本身的性能並不重要(因爲大部分時間都花在B和C上)。GCC熱屬性的語義
用__attribute__ ((hot))
註釋來影響這條路徑的更積極的優化的最小函數集是什麼?假設我們不能使用-fprofile-generate
。
等價地:__attribute__ ((hot))
意思是「優化這個函數體」,「優化對這個函數的調用」,「優化所有的後代調用這個函數使得」,或者它們的某些組合?
海灣合作委員會信息頁面沒有明確地解決這些問題。
使用'__attribute__((熱))'可能會獲得你一些東西,但是你可能會從首先製作B和C'靜態內聯'並使用'-O3'優化來獲得更好的結果。 – twalberg 2013-02-22 17:03:01
我假設這些步驟已經完成。 – 2013-03-06 20:26:20