Bashでは、.bashrc
シェルの起動時に(他のさまざまなスクリプトも含む)メモリにロードできます。長さは10行にすることができますが、数千行ではなくても数百行にすることもできます。各エクスポートは少量のメモリを消費し、各関数と各エイリアスにもメモリに保持される少量のリソースが必要です。別の考慮事項は、他のスクリプトのサイズだけを見ることができないことです。他のスクリプトには、.bashrc
メモリを消費しない多くのコメントがある可能性があるためです。
すべての起動スクリプトを削除し、システムを起動し、問題が解決するまで数分待ってから、いくつかの種類の基準を設定してから起動スクリプトを再挿入し、システムを再起動して同じ練習を実行していくつかを取得しようとしています。一種のリソース/パフォーマンスの違いです。
これを決定するのに役立つツールを提案できますか?私は、多くの関数とエイリアスを定義する約15,000個の比較的大きな起動スクリプトセットを持っているので、16GB RAMと高速で最新のシステムを備えた最新のシステムとして、その影響がある場合は本当に疑問に思います。 Core i5、効果は微妙に思える)システムが消費するリソースにどのような影響を与えますか?起動スクリプトの影響が少なくても、まだ基準をとり、「負荷テスト」を実行して、システムが特定のアプリケーションセットの実行をどのように処理するかを評価できるようにしたいと思います。
ベストアンサー1
起動スクリプトと最終設定の影響は主にインタラクティブシェルに影響し、最終的なリソース消費を決定するために努力する必要はありません。デフォルトシェルがデフォルト設定で始まるようにターミナルウィンドウを開き、起動スクリプトをロードせずにシェルを起動し、そのシェルで実行しますps -F
。
$ bash --norc
$ ps -F
UID PID PPID C SZ RSS PSR STIME TTY TIME CMD
steve 3922819 3921628 0 2307 4812 7 20:49 pts/14 00:00:00 bash
steve 3922883 3922819 0 2276 4688 5 20:49 pts/14 00:00:00 bash --norc
steve 3922884 3922883 0 2892 4244 0 20:49 pts/14 00:00:00 ps -F
この列を見ると、RSS
私の bash 設定 (非常に小さい) が単純な bash より 124KiB を多く使うことがわかります。
私のZsh設定はもっと複雑です。
$ zsh -f
$ ps -F
UID PID PPID C SZ RSS PSR STIME TTY TIME CMD
steve 3921244 18008 0 3341 8296 2 20:43 pts/14 00:00:00 zsh
steve 3921628 3921244 0 2829 5856 5 20:44 pts/14 00:00:00 zsh -f
steve 3923250 3922883 0 2892 4132 7 20:51 pts/14 00:00:00 ps -F
違いは2440KiBと大きくなります。
非対話型シェルは同じ起動スクリプトをロードせず、とにかく持続しません。 etc.を実行すると、スクリプトがあまりないことがわかりますps -FC sh
。ps -FC bash
環境にロードする内容が大きな影響を与える可能性があります。これを理解するには、次の実際のサイズを見てください/proc/.../environ
。
$ sudo wc -c /proc/*/environ | tail -n 1
758799 total
合計741KiBで、ほぼ1,000の実行中のプロセスに対応できます。