5
普遍的な非bashの「時間」ベンチマークの代替?[閉まっている]
休業。この質問には詳細または明確さが必要です。現在、回答を受け付けていません。 この質問を改善してみませんか?詳細を追加し、この投稿を編集して問題を明確にしてください。 3年前休業。 異なるシェル間でスクリプトの実行時間を比較するために、一部のSEの回答は、次のようにbashの組み込み timeコマンドの使用を提案しています。 time bash -c 'foo.sh' time dash -c 'foo.sh' ... など、すべてのシェルをテストします。このようなベンチマークでは、各シェルがそれ自体をロードして初期化するのにかかる時間を排除できません。例えば、上記のコマンドの両方が上に格納されたと仮定初期フロッピーディスクの読み出し速度と遅いデバイス、(124キロバイト/秒)、 dash(〜150K実行)についてロードする7Xより速くbash(〜1M)、シェル読み込み時間はtime数値を歪めます-これらのシェルの事前読み込み時間は、シェルが読み込まれた後のfoo.sh各シェルの下の実行時間の測定には関係ありません。 各シェル内から実行できるスクリプトタイミング用に実行するのに最適なポータブルで一般的なユーティリティは何ですか?したがって、上記のコードは次のようになります。 bash -c 'general_timer_util foo.sh' dash -c 'general_timer_util foo.sh' 注意:移植性や汎用性がないため、シェル組み込み timeコマンドはありません。 さらに、utilがシェルの内部コマンドとパイプラインにかかる時間をベンチマークでき、ユーザーが最初にそれらをスクリプトにラップする必要がない場合はさらに良いでしょう。このような人工的な構文は役に立ちます: general_timer_util "while read x ; do echo x ; done < foo" 一部のシェルtimeはこれを管理できます。たとえばbash -c "time while false ; do : ; done"動作します。システムで何が機能するか(そして機能しないか)を確認するには、次のことを試してください。 …