アカウント名:
パスワード:
ビルドプロセスのボトルネックはプロセッサかメモリかストレージか
私の場合はストレージでした
一般論として,LinuxのカーネルソースはC言語でシンプルに書かれているので,コンパイラはメモリをあまり必要としません.またコードの大半は,デバイスドライバ(Linux用語でいうモジュール)なのでソースコード間の依存関係が少ないです.そのためコア数が多いCPUでは,容易に並列ビルドできます.
しかしカーネルコードは比較的小さいファイルが多いため,ビルドすると小さい中間ファイルがたくさんできます結果,I/O,ファイルシステムやその背後にあるストレージがボトルネックになります.
私の環境(intelで16コア.メモリは32GB)でも,perf コマンド
QEMUとかFFMPEGとかJavaScript製PCエミュレータとかTCCとか作ってるヤベー人が作ったTCCBOOT https://bellard.org/tcc/tccboot.html [bellard.org] とかだとブートローダとしてその場でカーネルをビルドしているのに、Pen4でもたった15秒でビルドが終わるそうな。
最適化が弱いから速度面の検証とかは期待できないけど、未だにビルド速度で悩むようなら機能面での検証はTCCBOOTみたいなので済ますほうが生産性良かったりして。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
Stay hungry, Stay foolish. -- Steven Paul Jobs
ボトルネックは? (スコア:0)
ビルドプロセスのボトルネックはプロセッサかメモリかストレージか
Re: (スコア:5, 参考になる)
私の場合はストレージでした
一般論として,LinuxのカーネルソースはC言語でシンプルに書かれているので,コンパイラはメモリをあまり必要としません.
またコードの大半は,デバイスドライバ(Linux用語でいうモジュール)なのでソースコード間の依存関係が少ないです.
そのためコア数が多いCPUでは,容易に並列ビルドできます.
しかしカーネルコードは比較的小さいファイルが多いため,ビルドすると小さい中間ファイルがたくさんできます
結果,I/O,ファイルシステムやその背後にあるストレージがボトルネックになります.
私の環境(intelで16コア.メモリは32GB)でも,perf コマンド
Re:ボトルネックは? (スコア:0)
QEMUとかFFMPEGとかJavaScript製PCエミュレータとかTCCとか作ってるヤベー人が作った
TCCBOOT https://bellard.org/tcc/tccboot.html [bellard.org] とかだと
ブートローダとしてその場でカーネルをビルドしているのに、
Pen4でもたった15秒でビルドが終わるそうな。
最適化が弱いから速度面の検証とかは期待できないけど、
未だにビルド速度で悩むようなら機能面での検証はTCCBOOTみたいなので済ますほうが生産性良かったりして。