私はSeleniumベースのperlTestscriptを多数持っていました。テストが完了すると、次のようにログが出力されます。これは何を指定しますか?以下の時間の計算方法と基準
Files=1, Tests=17, 209 wallclock secs ( 0.13 usr + 0.01 sys = 0.14 CPU)
私はSeleniumベースのperlTestscriptを多数持っていました。テストが完了すると、次のようにログが出力されます。これは何を指定しますか?以下の時間の計算方法と基準
Files=1, Tests=17, 209 wallclock secs ( 0.13 usr + 0.01 sys = 0.14 CPU)
209 wallclock secs ( 0.13 usr + 0.01 sys = 0.14 CPU)
実行には209秒かかりました。これらの秒は、壁(または手首)の時計に従って経過した時間です。
この時間のほとんどは何かを待つことに費やされてきました。待っている?ええと、CPUは待機に多くの時間を費やしたので、時間が経過している間、CPUは計時されているプログラムで動作していませんでした。実際のCPU時間はわずか0.14秒と報告されているため、これはわかっています。つまり、209秒のほぼすべてが待機していることを意味します。
ユーザーモードで費やされた時間とシステムコールで費やされた時間の間には、さらに区別が必要です。簡単に言うと、前者はCPUがプログラムに適切に費やした時間を指し、後者はCPUがシステムコール(プログラムに代わってオペレーティングシステムに対して行われた呼び出し)の処理に費やした時間を指します。
マルチコアの補遺: @ArtMが指摘したように、またはむしろ私に発見させたように、プログラムが実行されたすべてのコアに対して与えられた時間usr
とsys
累積時間は、合計CPU時間またはいずれか1つでさえある場合があることを意味しますのusr
とsys
はウォールクロック時間よりも長い場合があります。これは奇妙に見えるかもしれませんが、複数のコアでの並列処理について考えると理にかなっています。
usr/sys
この問題、またはユーザーモードとカーネルモードの問題について詳しく知りたい場合は、このより包括的な回答をご覧ください。