できれば速い方がいいので、計測して自分用にメモって参考にしていましたが、誰かの参考になるかもしれないので計測結果を公開します。
計測したスクリプトファイルの種類
次の種類のスクリプトファイルと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ファイル | UWSC | 0KB | 0.482秒 | 1.270秒 |
ahkファイル | AutoHotKey | 0KB | 0.143秒 | 0.547秒 |
au3ファイル | AutoIt | 0KB | 0.099秒 | 0.565秒 |
vbsファイル | VBScript | 0KB | 0.113秒 | 0.258秒 |
ps1ファイル | PowerShell | 0KB | 0.912秒 | 0.681秒 |
pyファイル | Python | 0KB | 0.140秒 | 0.280秒 |
exe化したスクリプトファイル
種類 | 説明 | 容量 | 速いPCの 平均起動時間 | 遅いPCの 平均起動時間 |
---|---|---|---|---|
exe化した uwsファイル | 付属の純正コンパイラ を使用 | 2,987KB | 0.459秒 | 0.920秒 |
exe化した ahkファイル | 付属の純正コンパイラ を使用 | 1,072KB | 0.055秒 | 0.261秒 |
exe化した au3ファイル | 付属の純正コンパイラ を使用 | 864KB | 0.054秒 | 0.259秒 |
exe化した vbsファイル | MakeExe を使用 | 8KB | 0.123秒 | 0.251秒 |
exe化した ps1ファイル | PS2EXE-GUI を使用 | 30KB | 0.590秒 | 0.549秒 |
exe化した pyファイル | pyinstaller を使用 | 6,704KB | 0.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 件のコメント:
コメントを投稿