いくつかのフォルダーですべての 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モジュールを使用してソリューションを測定し、最適化を試みることをお勧めします。