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

看板C_and_CPP作者時間8年前 (2016/07/15 00:17), 編輯推噓1(107)
留言8則, 3人參與, 最新討論串1/1
各位好, 有個編譯最佳化的問題想請教 假設有一個靜態函式庫叫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

07/15 00:55, , 1F
static lib就已經是編好的機器碼了 頂多之後link的時候做
07/15 00:55, 1F

07/15 00:55, , 2F
一點LTO吧
07/15 00:55, 2F

07/15 11:56, , 3F
....
07/15 11:56, 3F

07/15 14:57, , 4F
在case 2加-O 也改變不了xxx.a 沒有-O 的事實,也不要
07/15 14:57, 4F

07/15 14:58, , 5F
把-O 神化,除非寫法本身有毛病,加-O層級也幫助不了
07/15 14:58, 5F

07/15 14:58, , 6F
什麼,除非你每一天都開-S 去算 cycles
07/15 14:58, 6F

07/15 15:00, , 7F
compiler的影響反而還比較明顯,還記得gcc2.9x 時期的版
07/15 15:00, 7F

07/15 15:01, , 8F
本大車拼就為了快那 0.0x秒
07/15 15:01, 8F
文章代碼(AID): #1NXxiBNR (C_and_CPP)