いくつかのフォルダーですべての git リポジトリを見つける必要があります。以前は、 を使用していfind . -type -d -name .git
ました。これを Python 3 で書き直してos.walk
. 単純な よりもツリーをトラバースするのに時間がかかるようfind
です。
どうすればこれをスピードアップできますか?
いくつかのフォルダーですべての git リポジトリを見つける必要があります。以前は、 を使用していfind . -type -d -name .git
ました。これを Python 3 で書き直してos.walk
. 単純な よりもツリーをトラバースするのに時間がかかるようfind
です。
どうすればこれをスピードアップできますか?
SOには多くのスレッドがあり、非常os.walk()
に遅いです。
の実装を意味する場合find_repos()
、使用os.walk()
はおそらく最適ではありません。その理由は、サブディレクトリが見つかったら、それ以上.git
深く検索する必要がないからです。独自のディレクトリ トラバーサルを作成してみてください。os.py
がどのように実装されているかについては、ソースを参照してください。速度が遅いwalk
理由は、Python で記述されている可能性があります。
新しいソリューションの他の部分について...正規表現をコンパイルしていないことに気付きましたが、詳細を確認していませんでした。
機能を別の Python スクリプトに分離し、timeit
モジュールを使用してソリューションを測定し、最適化を試みることをお勧めします。