閱讀998 返回首頁    go 阿裏雲 go 技術社區[雲棲]


《Linux From Scratch》第二部分:準備構建 第四章:最後的準備- 4.5. 關於 SBU

不少人在開始做之前都想要知道,編譯和安裝一個軟件包到底需要多長的時間。實在是抱歉,因為 Linux From Scratch 能夠運行於眾多的硬件上,所以具體的編譯時間無法一概而論。舉一個簡單的例子:在最快的硬件設備上,編譯那種非常巨大的軟件包(如 Glibc)可能僅需要 20 分鍾,在那種很慢很慢的硬件上呢,這個時間可能就變成 3 天了。所以,這裏使用 SBU(標準編譯單位)來指代具體的編譯時間。

SBU 衡量方式如下。我們以第五章編譯的第一個軟件包 Binutils 所用時間作為一個標準編譯單位(SBU),其它軟件的生成時間都以其為標準進行比較。

例如,假如編譯一個軟件耗時 4.5 SBU,而編譯安裝初代 Binutils 用時 10 分鍾的話,那麼編譯這個軟件包大約耗時 45 分鍾。當然啦,對於大多數人來說,編譯 Binutils 可用不了 10 分鍾那麼久。

一般來說,SBU 的結果並不準確,因為影響編譯的因素太多,例如宿主機的 GCC 版本的不同就會改變編譯的時間。所以更多的時候,這僅僅是提供一個編譯和安裝時間的預估,有些情況下,預估時間和實際編譯時間可能相差幾十分鍾。

[Note]

注意

對於大多數帶有多個處理器(或內核)的現代操作係統而言,可以通過設置環境變量或者是告知  make 程序具體可用的處理器數目,通過“並行編譯”來減少編譯的時間。例如,對於 Core2Duo 可以通過以下參數實現兩個處理器同時編譯:

export MAKEFLAGS='-j 2'

或者直接這樣編譯:

make -j2

當使用多處理器同時編譯,SBU 的結果可能和本書提供的建議值有所不同。在一些情況下,使用多處理器同時編譯可能失敗,分析錯誤日誌變得異常困難:因為不同處理器之間的執行路線是交錯的。如果你在編譯的時候遇到問題,那麼請回過來使用單處理器編譯,以正確地查看錯誤消息。



創建者:Gerard Beekmans

編輯者:Matthew Burgess 和 Armin K.

翻譯團隊:LCTT

譯者/校對:dongfengweixiao,wxy

原文鏈接

最後更新:2017-11-07 14:34:27

  上一篇:go  《Linux From Scratch》第二部分:準備構建 第四章:最後的準備- 4.6. 關於測試套件
  下一篇:go  《Linux From Scratch》第二部分:準備構建 第四章:最後的準備- 4.4. 設置環境