Linus對支持鏈接時優(yōu)化(LTO)的Linux內(nèi)核并不看好
之前,用于啟用Linux 3.15內(nèi)核的實驗LTO支持的補(bǔ)丁已經(jīng)發(fā)布了一個PR(上拉請求),但Linus Torvalds 還沒有決定他是否會接受這段代碼到上游的Linux內(nèi)核…… Linus 仍然沒看到鏈接時優(yōu)化內(nèi)核(LTO:ink-time optimizations)的好處,也不確認(rèn)這段代碼是否已準(zhǔn)備好放入主干中。
LTO的Linux kernel有一個好處是,可以減小Linux內(nèi)核鏡像的大小,而且更快和更高效。在GCC中配合使用LTO會使整個程序在鏈接階段就實現(xiàn)整個的二進(jìn)制優(yōu)化。先前的結(jié)果表明,一個LTO的內(nèi)核可以減少超過10%的尺寸大小,并且內(nèi)核優(yōu)化后比常規(guī)的內(nèi)核快百分之幾,但是它目前的問題是需要占用更多的系統(tǒng)內(nèi)存以及更長的編譯時間。
這個推送給Linux 3.15 LTO Kconfig的PR,希望在下一個內(nèi)核版本中的增加一個實驗性選項。作為回復(fù),Linus Torvalds寫道:
到目前為止,我有幾個不進(jìn)行合并的原因(“實驗性太強(qiáng),我們甚至不希望鼓勵人們?nèi)y試它”,以及“它不是完全可靠,并且使得編譯時間變的很長"). 而且至今沒有人真正和我討論過,為什么我應(yīng)該合并它(譯注:Linus的意思是說其實沒有人真正知道,并且討論合并LTO的理由)。
如上,我是這樣覺得的,這讓我多少動力去合并它。
所以我認(rèn)為我應(yīng)該讓“子彈飛一會兒”,直到人們開始討論它帶來的好處。最終的結(jié)果是到底可以小到什么程度呢?快到什么程度呢?能干的多漂亮呢?是否會有新的更酷的東西出現(xiàn)?那些很酷的事情真地快要來到了嗎?真的希望這個可以被合并,甚至在還沒完全準(zhǔn)備好的情況下?
所以,請說服我。Andi?
Linus
作為對Linus的關(guān)注的回應(yīng),LTO內(nèi)核變得尺寸更小了,通過把未使用代碼的自動淘汰,它們減少了對許多低級Kconfig符號的需要、減少了所需的配置選項的數(shù)目。來自Tim bird的幾個報告顯示,在ARM上帶有LTO配置的內(nèi)核可以減少11%的尺寸,而其他用戶甚至最多減少了30%。也有報告稱系統(tǒng)調(diào)用減少了約4%。基準(zhǔn)測試的結(jié)果根據(jù)測試負(fù)載有所差異,但一般都有幾個百分點的提升。
如今,Linux內(nèi)核是否支持鏈接時優(yōu)化仍然在討論,Linus 是否愿意合并此實驗性功能到Linux 3.15還不明朗。
via: http://www.phoronix.com/scan.php?page=news_item&px=MTY1OTg
譯者:owen-carter 校對:wxy