看板 C_and_CPP 關於我們 聯絡資訊
各位好, 有個編譯最佳化的問題想請教 假設有一個靜態函式庫叫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會有影響嗎? 想聽聽各位的想法 謝謝~ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.226.231.114 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1468513035.A.5DB.html
lsc36: static lib就已經是編好的機器碼了 頂多之後link的時候做 07/15 00:55
lsc36: 一點LTO吧 07/15 00:55
TobyH4cker: .... 07/15 11:56
enonrick: 在case 2加-O 也改變不了xxx.a 沒有-O 的事實,也不要 07/15 14:57
enonrick: 把-O 神化,除非寫法本身有毛病,加-O層級也幫助不了 07/15 14:58
enonrick: 什麼,除非你每一天都開-S 去算 cycles 07/15 14:58
enonrick: compiler的影響反而還比較明顯,還記得gcc2.9x 時期的版 07/15 15:00
enonrick: 本大車拼就為了快那 0.0x秒 07/15 15:01