python コマンドがすごく遅い
コマンドによるのですが、python で出来たコマンドがすごく遅い
調べてみたら、zip 化 されたバイナリ(eggをまとめたもの)になってるので、実行時に展開が走るので遅い。本当に遅いんです。
もとのソースコードを用意したほうが速い
pyc のファイルを作ればだいぶ速いらしい。
というわけでヤってみた
とりあえず、python でくっそ遅いパッケージを何とかすることにしてみる。
git clone git://github.com/rg3/youtube-dl sudo ln -s ~/youtube-dl/youtube_dl/__main__.py /usr/local/bin/youtube-dl chmod +x /usr/local/bin/youtube-dl
実行速度比較
git から取ってきた圧縮されたバイナリを実行した場合
takuya@raspberrypi:~ $ sudo curl -L https://yt-dl.org/downloads/latest/youtube-dl -o /usr/local/bin/youtube-dl-bin takuya@raspberrypi:~ $ time youtube-dl-bin -h real 0m12.439s user 0m11.730s sys 0m0.570s
ソースコードからをそのまま使う場合 中間コードにコンパイルしたものといえ、すごく速い。
takuya@raspberrypi:~ $ time youtube-dl -h real 0m3.843s user 0m3.400s sys 0m0.320s
は、速い。。。。速度3倍か。この差は歴然だ。raspi のARMのCPUだとココまで変わるのか。なんでだろうな
3倍速い赤いヤツのようだ。Intel x86だとココまでの差はつかなかったと思うんですけど。
結論
python はソースもって来たほうが速い・・・なんでだ