2

私はプログラムのコンパイルが本当に苦手で、py2exe を使用して .exe に変換した場合に Python 2.5 プログラムが高速になるかどうかを知りたいだけです。最終的に遅くなるだけなら、コンパイルに多くの時間を費やしたくありません。私のプログラムは OpenCV と PyAudio を使用していますが、それが使用する唯一の非純粋な Python モジュールだと思います。ありがとう!

注: この質問にコードのスニペットは必要ないと思いますが、必要な場合はコメントでその旨をお知らせください。ありがとう!

4

3 に答える 3

6

いいえ、そうではありません。これは単なるラッパーであるため、コードの実行に必要なファイルを提供します。Cythonを使用すると、Cを使用してプログラムをコンパイルできるため、プログラムの実行速度が向上する可能性があります。

于 2012-12-24T13:51:52.087 に答える
1

プログラムを高速化したい場合は、まずなぜ遅いのかを測定する必要があります。これは、プログラムが時間を費やしている場所を見つけることを意味します。そのために利用可能なプロファイラーの 1 つを使用します。リンクされた例からわかるように、それほど難しくありません。

プログラムが最も多くの時間を費やしている場所がわかっていれば、最適化を行う価値があるか、可能かどうかを判断できます。たとえば、プログラムがすでにネットワーク接続を飽和させている場合、プログラムをいじっても速度は向上しません。

あなたのプログラムの最も遅いコードを質問に追加していただければ、それを改善するお手伝いができるかもしれません。通常、使用するアルゴリズムを改善することで大きな利益を得ることができます。たとえば、コードがデータの長いリストに対して同じ計算を行う場合、通常、multiprocessing.Poolなどを使用して高速化するのは簡単です。N コア CPU を使用している場合Pool.map()は、通常の .NET より最大 N 倍高速になりmap()ます。

それが十分でない場合は、多くの標準的な Python コードをpypy実装で実行できます。これは通常、cpython 実装よりも高速です。

前述の cython とは別に、数値計算用のnumpyなどの C で記述された既存の拡張機能を使用することもできます。もちろん、別のオプションは、C で専用の拡張機能を作成することです。

オペレーティング システムも重要です。XP の python は、例えば Linux よりもファイル アクセスが遅いようです。

于 2012-12-24T17:37:06.353 に答える
1

私はこの 2 か月間、Windows Python の作業に費やしましたが、あまり満足していないと言わざるを得ません。C モジュール (標準ライブラリ以外) がある場合、それを機能させるには大きな問題が発生します。

速度は Linux に似ていますが、少し遅いようです。 py2exe は最適ではないことに注意してください。py2exe に問題があり、pyinstaller を使用する必要がありました。デバッグが改善され、py2exe が機能しなかった場合に機能しました。

私の最大の失望はexeサイズでした。lxml、sudsを使用する単純なプログラムがあり、7〜8MBの大きさでした...

于 2012-12-24T18:03:54.527 に答える