それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

raspberryPiでpythonコマンドがすごく遅い時があるのでなんとかする

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 はソースもって来たほうが速い・・・なんでだ

参考資料

Raspberry Pi • View topic - Speeding up youtube-dl