1

rpmから(またはyumを使用して)インストールできるPythonインタープリターと、ソースからコンパイルされた(コンパイル用に事前に設定されたフラグを使用して)Pythonインタープリターとの間に文書化されたパフォーマンスの違いがあるかどうかを知りたいです。

Redhat6.3マシンをDjango/Apache/Mod_WSGI本番サーバーとして使用しています。私はすでにすべてをさまざまな設定でさまざまな順序で適切にコンパイルしています。ただし、私は通常、そのようなマシンでbuild-devの依存関係を保持します。いくつかのさまざまな自我関連の(そして多かれ少なかれ実用的な)理由のために、私はPython-2.7.3を使用したいと思います。デフォルトでは、RedhatにはPython-2.6.6が付属しています。私はそれで行くことができると思いますが、それはどういうわけか私を傷つけるでしょう(私はいくつかのライブラリと私のエゴの代わりをドロップして見つける必要があります)。

ただし、エゴと依存関係に加えて、Djangoサーバーのパフォーマンスの観点からどのような影響があるのか​​知りたいです。

4

1 に答える 1

4

RPMバージョンのコンパイルに使用されたものとまったく同じフラグを使用してコンパイルすると、まったく同じ速度のバイナリが得られます。specそして、RPMのファイルを見ると、これらのフラグを取得できます。

ただし、ビルド済みのバージョンよりもうまくいく場合があります。たとえば、「一般的な386互換」(またはRPMが最適化されたもの)ではなく、特定のCPUに合わせてコンパイラを最適化することができます。もちろん、自分が何をしているのかわからない場合(または意図的に行っている場合)、ビルド済みバージョンよりも遅いものをビルドすることも常に可能です。

一方、2.7.3は、2.6.6よりもいくつかの領域で高速です。それらのほとんどは通常あなたに影響を与えませんが、もしそれらが影響を与えるならば、それらはおそらく大きな勝利になるでしょう。

最後に、Pythonコードの大部分では、Pythonインタープリター自体の速度は、全体的なパフォーマンスやスケーラビリティとは関係ありません。(そうであれば、CPythonの代わりにPyPy、Jython、またはIronPythonを試してみることをお勧めします。)これは、WSGIサービスに特に当てはまります。遅いことを何もしていない場合は、Apacheがボトルネックになる可能性があります。何か遅いことをしている場合、それはおそらくI / Oバウンドであり、Pythonの制御の範囲外です(ファイルの読み取りなど

最終的に、どの程度の利益が得られるかを知る唯一の方法は、方法とパフォーマンステストの両方を試すことです。しかし、経験則が必要な場合は、0%のゲインを期待し、運が良ければ嬉しい驚きを感じるでしょう。

于 2013-03-13T21:44:10.237 に答える