パフォーマンスがかなり重要なPythonプロジェクトがあります。正直なところ、Python(少なくとも純粋なPython)はこの仕事に最適なツールではないことはわかっていますが、調査コードの非常に単純な純粋なPythonバージョンを配布して、人々が変更できるようにしたいので、とにかくそれを使用しています。複雑な環境を設定することなく、など。(Dで記述された代替の実装もあります。これははるかに高速ですが、ハッキングが困難です。)
私はインタプリタとしてPyPyを使用していて、このコードを使用する人にはPyPyを推奨していました。これは私に適度なスピードを与えていました。次に、アルゴリズムを微調整することにし、SciPyからいくつかの関数にアクセスする必要がありました(必要なのは、カイ2乗分布のCDF、生存関数、および逆CDFだけです)。コードをCPythonで実行して、SciPyにアクセスしようとしましたが、糖蜜のように遅いです。
誰かが3つのことの1つを提案できますか?
PyPyのSciPyの一部を使用できるようにするための応急修理。
さらに良いことに、リベラルなライセンスの下で、必要なカイ二乗分布関数の純粋なPython実装はありますか?
CPythonのボトルネックをJITする方法は?Psycoについては知っていますが、メンテナンスされていないようで、32ビットシステムでのみ動作します。