プログラムを高速化したい場合は、まずなぜ遅いのかを測定する必要があります。これは、プログラムが時間を費やしている場所を見つけることを意味します。そのために利用可能なプロファイラーの 1 つを使用します。リンクされた例からわかるように、それほど難しくありません。
プログラムが最も多くの時間を費やしている場所がわかっていれば、最適化を行う価値があるか、可能かどうかを判断できます。たとえば、プログラムがすでにネットワーク接続を飽和させている場合、プログラムをいじっても速度は向上しません。
あなたのプログラムの最も遅いコードを質問に追加していただければ、それを改善するお手伝いができるかもしれません。通常、使用するアルゴリズムを改善することで大きな利益を得ることができます。たとえば、コードがデータの長いリストに対して同じ計算を行う場合、通常、multiprocessing.Poolなどを使用して高速化するのは簡単です。N コア CPU を使用している場合Pool.map()
は、通常の .NET より最大 N 倍高速になりmap()
ます。
それが十分でない場合は、多くの標準的な Python コードをpypy実装で実行できます。これは通常、cpython 実装よりも高速です。
前述の cython とは別に、数値計算用のnumpyなどの C で記述された既存の拡張機能を使用することもできます。もちろん、別のオプションは、C で専用の拡張機能を作成することです。
オペレーティング システムも重要です。XP の python は、例えば Linux よりもファイル アクセスが遅いようです。