[問題] 編譯最佳化的問題

作者: RealJack   2016-07-15 00:17:12
各位好,
有個編譯最佳化的問題想請教
假設有一個靜態函式庫叫xxx.a
program A使用xxx.a裡面的某函式x()
program A除了呼叫xxx.a,本身不做任何事
case 1: 用-O3編譯出xxx.a=> A呼叫x() => 不用任何flag再編譯出A
case 2: 不用任何flag編譯xxx.a=> A呼叫x() => 使用-O3再編譯出A
請問case 1會比case 2快嗎? 還是一樣快?
換句話說, 一旦靜態函式庫被預先編譯完後
之後的使用者再加上最佳化的flag會有影響嗎?
想聽聽各位的想法
謝謝~
作者: lsc36 (lsc36)   2016-07-15 00:55:00
static lib就已經是編好的機器碼了 頂多之後link的時候做一點LTO吧
作者: TobyH4cker (Toby (我要當好人))   2016-07-15 11:56:00
....
作者: enonrick (EnonRick)   2016-07-15 14:57:00
在case 2加-O 也改變不了xxx.a 沒有-O 的事實,也不要把-O 神化,除非寫法本身有毛病,加-O層級也幫助不了什麼,除非你每一天都開-S 去算 cyclescompiler的影響反而還比較明顯,還記得gcc2.9x 時期的版本大車拼就為了快那 0.0x秒

Links booklink

Contact Us: admin [ a t ] ucptt.com