2022年3月26日土曜日

自動化ツールのスクリプトファイルの起動時間を計測、比較しました。


自動化ツールの起動トリガーとして、Stream Deck やマウスの G600 などのハードウェアのボタンをよく使うのですが、ボタンを押してから実際に動作が始まるまでの時間が気になる時があります。

できれば速い方がいいので、計測して自分用にメモって参考にしていましたが、誰かの参考になるかもしれないので計測結果を公開します。

 

計測したスクリプトファイルの種類

次の種類のスクリプトファイルとexe化したファイルをそれぞれ計測しています。

・UWSC
・AutoHotKey
・AutoIt
・VBScript
・PowerShell
・Python

 

計測方法

何もしないスクリプトファイルを作成し、batファイルで「CALLコマンドで実行し、戻ってきたら再度実行するのを10回繰り返して時間を計測」し、1回あたりの平均時間を記録した。

 

実行環境

CPUが速いのと遅いのの2台で計測しました。
多分、マルチ性能で5倍、シングル性能で3倍くらいの差でしょうか?

 

速いPC

・Windows 10 Home
・Core i7-8700 @ 3.20GHz(PassMarkスコア:13,053)
・NVMe M.2 SSD

 

遅いPC

・Windows 10 Home
・Celelon N4100 @ 1.10GHz(PassMarkスコア:2,453)
・NVMe M.2 SSD

 

ファイルの種類と計測結果

スクリプトファイル

種類説明容量速いPCの
平均起動時間
遅いPCの
平均起動時間
uwsファイルUWSC0KB0.482秒1.270秒
ahkファイルAutoHotKey0KB0.143秒0.547秒
au3ファイルAutoIt0KB0.099秒0.565秒
vbsファイルVBScript0KB0.113秒0.258秒
ps1ファイルPowerShell0KB0.912秒0.681秒
pyファイルPython0KB0.140秒0.280秒

 

exe化したスクリプトファイル

種類説明容量速いPCの
平均起動時間
遅いPCの
平均起動時間
exe化した
uwsファイル
付属の純正コンパイラ
を使用
2,987KB0.459秒0.920秒
exe化した
ahkファイル
付属の純正コンパイラ
を使用
1,072KB0.055秒0.261秒
exe化した
au3ファイル
付属の純正コンパイラ
を使用
864KB0.054秒0.259秒
exe化した
vbsファイル
MakeExe
を使用
8KB0.123秒0.251秒
exe化した
ps1ファイル
PS2EXE-GUI
を使用
30KB0.590秒0.549秒
exe化した
pyファイル
pyinstaller
を使用
6,704KB0.303秒0.367秒

 

exe化による時間短縮率

種類速いPCの
exe化による
時間短縮率
遅いPCの
exe化による
時間短縮率
uwsファイル5%短縮28%短縮
ahkファイル62%短縮52%短縮
au3ファイル45%短縮54%短縮
vbsファイル9%長くなった3%短縮
ps1ファイル35%短縮19%短縮
pyファイル116%長くなった31%長くなった

 

という結果でした。
グラフにするとこんな感じ。(記事トップと同じ画像です)




感想

UWSCおっそいな。

PowerShellは環境で速かったり遅かったするみたいで、なんでか速いPCの方が遅かった。

当たり前ですが、exe化したファイルの方が早くなりますが、Pythonだけ逆に遅くなりました。
そういえばPythonのexe化はコンパイルではなくビルド化って聞いた気がするのでそれでしょうか?
exe化した時のファイル容量と時間はあまり関係ないみたいですね。SSDだからかな?

AutoHotKeyとAutoItはexe化で時間が半分になるので、よく使うものは恩恵が大きそうです。

CPUは速い方が起動もだいぶ速かったですが、PassMarkスコアの差ほどは違いがなかったように思います。 やはりシングル性能が左右している気がします。

 

注意

起動時間は、実行環境により大きく変わります。
スクリプトのランタイムのバージョンでも大きく変わりますし、コンパイラの種類や設定でも大きく変わると思います。
あくまでも、今回私が試した環境で上記の結果だっただけですので、参考程度にしてくださいね。


0 件のコメント: