私はしばらくの間、コマンドラインのPythonスクリプトを書いてきましたが、最近はスピードに本当に不満を感じました。高速応答のコマンドラインスクリプト
私は必ずしも処理速度やタスクや他のコマンドラインツール固有のプロセス(通常は設計/実装上の問題)のディスパッチについては言及していませんが、単に私はツールを実行してヘルプを得るメニューを表示したり、最小限の情報を表示できます。一例として、
、Mercurialは周り0.080scsにあり、GITが0.030scs
である私はMercurialのソースコードに見てきました(それはすべての後にPythonのである)が、答えはまだ見逃さを高速応答スクリプトを持っています私。
私はimports
と考えています。どのようにそれらを管理するかは、初期スローダウンの大きな理由です。しかし、Pythonでコマンドラインスクリプトを高速で高速に処理するための最善の方法はありますか?
OSとoptparseはをインポートし、実行し、単一のPythonスクリプトのmain()これは単に実行するよりも5倍遅い...
を私のマシン上の0.160scsだけで、ヘルプメニューを表示するのにかかるいくつかの引数オプションを解析しますねえ!
編集:
それはCで書かれているように私はgitのを言及しているべきではありません。しかしMercurialの一部はまだ立って、ノー、pyc
は(少なくとも私には)大きな改善のように感じることはありません。
編集2:怠惰な輸入はMercurialの中にスピードアップするための鍵ですが
、彼らは 通常のPythonスクリプトでの遅さにキーは次のように、それらの中にpkg_resources
で自動生成されたスクリプトを持っていません。
from pkg_resources import load_entry_point
pkg_resourcesを使用しないスクリプトを手動で生成した場合は、少なくとも2倍の速度向上が見られるはずです。
ただし、 pkg_resourcesはバージョン依存性の良い方法を提供するので、基本的にはバージョン間の競合を意味しないことを認識していることを確認してください。
ここで問題を解決すると思います。私は、Pythonがこれを解決するための "デフォルト"のアプローチがないことに驚いています。簡単に説明してくれてありがとう。 – alfredodeza