いろいろ備忘録日記

主に .NET とか Java とか Python絡みのメモを公開しています。

Windows で Linux や Mac の time コマンドみたいなものを出力したい (実行時間計測, time command)

概要

小ネタです。忘れないうちにメモ。

WindowsでLinuxやMacなどで利用できる time コマンドみたいに実行時間を表示したい場合のTips。

Windows で time コマンドを実行すると・・・

Windowsにも time コマンドはあるのですが、こちらは時間を設定するものです。

全然違うコマンドです。

PoweShell使う

以下を参考にしました。

superuser.com

で、実際に以下のようなどうでもいいサンプルつくって

import time

print('start....')
for _ in range(5):
    time.sleep(1)
else:
    print('done')

で、以下を実行。

$ Measure-Command { Start-Process python -argumentList "test1.py" -Wait -NoNewWindow }

以下のように表示されました。

$ Measure-Command { Start-Process python -argumentList "test1.py" -Wait -NoNewWindow }
start....
done


Days              : 0
Hours             : 0
Minutes           : 0
Seconds           : 6
Milliseconds      : 129
Ticks             : 61295455
TotalDays         : 7.09438136574074E-05
TotalHours        : 0.00170265152777778
TotalMinutes      : 0.102159091666667
TotalSeconds      : 6.1295455
TotalMilliseconds : 6129.5455

なんか、若干ずれてるような気がするけど・・・インタープリターの起動時間かな・・・。 まあ、いいや。

-Wait-NoNewWindow つけておくのがポイントです。これつけておかないとちゃんと計れませんでした。

秒数だけでいいやって場合は

$ Measure-Command { Start-Process python -argumentList "test1.py" -Wait -NoNewWindow } | Select-Object -Property TotalSeconds

でいいですね。長い・・・・・・・。


過去の記事については、以下のページからご参照下さい。

サンプルコードは、以下の場所で公開しています。