ports: 対策2006年04月25日 07時28分02秒

さて、各隘路がわかったところで、対策を練る。

ネットワークは残念ながら大したことは出来ない。make fetch-recursive か portupgrade -F を使って、事前にソースを取得する以外にない。また、nfs などを使って、落としてきた物を共有したりすると、また効率が上がる。

しかし、fetch-recursive で事前に取ってこられると言っても、結局待つのには変わらない。そこで、portupgrade を一度開始するのである。portupgrade が fetch をし、少し大きめの物のコンパイルを始めたら、portupgrade -F を他のターミナルから始めるのである。それゆえ、最初に少々待ち時間があるが、それ以降はコンパイル中にソースを取ってこられるので、ネットワーク待ちはそれこそ最初に少しあるだけになる。

CPU で対策と言ったら、まず、TMPDIR を mfs に設定である。コンパイルされるものはほとんど C か C++ で書かれている。gcc は TMPDIR に一時ファイルを作るので、それをディスクに書き込まないことにより、高速化を図る。

ディスク対策は速いものに置き換えればいいだけである。5400 rpm のディスクを持っているのならば、7200 rpm のディスクに変えれば速くなるし、100000 rpm のディスクは更に速くなる。それよりも、速いのはメモリディスクだろう。何も別途、お金を出して買う必要も無いのである。充分なメモリがあれば、mdconfig -a -t swap でも、機能する。

とても一般的な話になってしまった。これでは、確かに速くはなるが、別に ports に特化したわけでもない。それでは、わざわざ uyota 流として載せる必要もない。そこで、次回には ports にのみ特化した高速化を実施する。