GNU/Linux >> Linux の 問題 >  >> Linux

時間コマンドでBashスクリプトの実行にかかる時間を確認する

これは、時間を測定する簡単なコマンドです。ご想像のとおり、時間です。ただし、これは時計アプリケーションではありません。プログラムまたはスクリプトの実行にかかる時間を測定します。

[email protected]:~$ time ./script.sh
real 0m12.010s
user 0m0.004s
sys 0m0.006s

時間コマンドとその出力については、1分で説明します。

時間ユーティリティにはいくつかの異なるバージョンがあります。ここでは、Bashバージョンを見ていきます。これは、システムで遭遇する可能性が最も高いバージョンだからです。 ZshバージョンとGNUバージョンもあります。

混乱を避けて、今すぐバージョンを確認しましょう。

[email protected]:~$ type time
time is a shell keyword

出力がこのようになっている場合、それは完璧です。これは、bashを使用していることを意味します。このコマンドはすべての反復で同じタスクを実行するため、bashを使用していない場合でも、恐れることはありません。何が起こっているのかを理解することができます。ただし、見た目はかなり異なる場合があります。

時間コマンドの使用

時間コマンドは以下を測定します:

  • リアルタイム:経過時間の合計
  • ユーザー:ユーザーモードでのOS処理
  • sys:カーネルモードでのOS処理

任意のコマンドまたはパイプコマンドで使用できます。

テキストベースのアプリケーションとの時間

nanoの例を見てみましょう。 Nanoは端末ベースのテキストエディタです。 nanoを起動してすぐにアプリケーションを終了すると(Ctrl + X)、出力は次のようになります。

time nano
real    0m1.465s
user    0m0.031s
sys        0m0.006s

GUIアプリケーションを使用する時間

これは、GUIアプリケーションでも機能します。アプリケーションが正常に終了するか、端末で割り込み(CTRL + C)が入力されると、出力が返されます。

time firefox
real    0m6.784s
user    0m4.962s
sys        0m0.459s
従来のGNUバージョン

前に触れたように、ほとんどのLinuxユーザーはBashを実行します。これは、基本的にショートカットを使用して人間が読めるコンテンツを作成します。エスケープ文字\を使用して、完全なGNUバージョンを実行できます。 。これにより、組み込みのショートカットがバイパスされます。

今回は、sleepコマンドを使用してダミージョブを作成します。数値は秒単位の期間です。これは、出力のリアルタイムにも反映されます。

これはダミータスクであるため、それに費やされる実際のリソース時間はないことに注意してください。

[email protected]:~$ \time sleep 3
0.00user 0.00system 0:03.00elapsed 0%CPU (0avgtext+0avgdata 1944maxresident)k
0inputs+0outputs (0major+75minor)pagefaults 0swaps

この出力は少し読みにくいですが、RAMの使用状況に関する情報も共有しているので便利です。

GNU Time -p =(bash)time

bashバージョンで通常表示される出力は、-pで実行されるGNU時間のエイリアスのようなものです。 オプション。

[email protected]:~$ \time -p sleep 3
real 3.00
user 0.00
sys 0.00

ご覧のとおり、これにより、bashショートカットを使用して実行した場合と同じ出力が得られます。

結論

タイムコマンドのガイドを楽しんでいましたか?これらのヒントのすべてがあなたに何か新しいことを教えてくれたことを願っています。

このガイドが気に入ったら、ソーシャルメディアで共有してください。コメントや質問がある場合は、以下に残してください。取り上げてほしいトピックについての提案があれば、それらもお気軽に残してください。読んでくれてありがとう。


Linux
  1. Ubuntu - sudo を使用して起動時にコマンドを実行する

  2. bashスクリプトでpythonスクリプトを強制終了する方法

  3. 権限を減らしてスクリプトの一部を実行するには?

  1. LinuxのbashコマンドをPERLスクリプトで実行する方法は?

  2. `set -e`を使用したBashスクリプトは`…&&…`コマンドで停止しませんか?

  3. Monoで*.exeを実行するようにBashを設定する方法は?

  1. Bashスクリプトでは、Continueコマンドは埋め込みループでどのように機能しますか?

  2. bash.sh で cron を実行する権限が拒否されました

  3. N秒ごとにbashスクリプトを繰り返し実行するには?