ソースからアプリケーションをコンパイルすると、速度や RAM が向上しますか?

ソースからアプリケーションをコンパイルすると、速度や RAM が向上しますか?

私は数か月前から Linux を使っていて、現在は古いデスクトップで Arch を実行しています。すべてをソースからコンパイルすることの素晴らしさはよく聞きます。たとえば、Gentoo やその他の同様のディストリビューションは超高速です。私はまだ使ったことがありませんし、すぐに使う予定もありません。しかし、日常的に使うアプリケーションを高速化したいかもしれません。また、GCC と Intel の C コンパイラのどちらを使うべきか迷っています。通常、RAM は最大 2 GB しか使いませんが、プロセッサは古くて遅いです。すべてのアプリケーションをソースからコンパイルするべきでしょうか、それともバイナリを使い続けるべきでしょうか?

ありがとう!

答え1

答えは「はい」です。顕著に表れるでしょうか? ほとんどありません。

実行するハードウェアによっては、CPU が提供する最適化を利用できるため、速度が向上する可能性があります。ただし、ほとんどの場合、アプリケーションはライブラリのみを使用しているため、その利点を活用するには、たとえば Gentoo をフルに使用してください。

それは努力する価値があるでしょうか? かなり古いハードウェアで実行している場合、または本格的な数値計算や 1 秒間に何度も実行されるような処理を行っている場合、つまり各命令が重要になる場合を除き、おそらく価値はありません。

現在のハードウェアは、基本的にほとんどの時間アイドル状態であり、これが SETI@home、Folding@home、Great Mersenne Prime Search などを可能にしている事実です。

古いハードウェアでは、再コンパイル (保守性、セキュリティ修正、依存関係の追跡など、独自の一連の問題が伴います) よりも構成の方が役立つ場合があります。

たとえば、Firefox を 1 つまたは 2 つの並列コンテンツ プロセスだけを使用するように構成すると、メモリの少ないシステムで非常に役立ちます。CPU が問題である場合は、特定のサービスまたはバックグラウンド タスクを無効にするか手動で実行することをお勧めします。Tumblerd は古いコンピューターを簡単に破壊する可能性がありますが、updatedb も同様です。

設定面では、不要なライブラリ/サービスを無効にしたり、他のフィールドを調整したりするために再コンパイルすることができます。たとえば、--disable-pdfimport で libreoffice をビルドします。この一般的なケースでは、システムで使用されているソース パッケージ (アップストリームではない) をダウンロードして調整する方がよいでしょう。得られるものは多くありませんが、学ぶことは多くあります。

また、アプリケーションの速度は、ディスクまたはネットワークの I/O 速度によって制限される場合があることに注意してください。このような場合、ソースからソフトウェアをコンパイルしてもパフォーマンスの向上は期待できません。

関連情報