3


私のpythonアプリをPYPYに確実に移行できるかどうか疑問に思っています。特に、科学的監視に使用している多くの Python コードとねじれたベースのモジュールのパフォーマンスを改善する必要があり、将来のアプローチを考えています。

Python Foundation は、pypy または Cython のモデルを使用して、CPython のパフォーマンス向上の意図を示していません。

車輪を再発明する必要はありませんが、Guido は python ユーザーのニーズを気にしていないようです。

...そして断然、別のプログラミング言語を使いたくありません。

PD:実際には 2.7 バージョンを使用しています...

編集済み: 私のコードはプロファイリングされ、何度かテストされています。

編集:これについてもっと意見を知りたい...

4

1 に答える 1

3

あなたは CPython に対して間違った印象を持っていると思います。CPython は参照実装であり、常に最新の Python 機能と最新バージョンの Python を備えています。パフォーマンスは重要であり、CPython のパフォーマンスはマイナー リリースごとに大幅に向上しています。CPython は、現在利用可能な実装の中で間違いなく最も「将来的に信頼できる」ものです。

ただし、CPython の非常に重要な機能は、C 環境への橋渡しです。つまり、C ライブラリをラップするか、手動でメモリ管理を行う微調整された C コードを含む C で記述されたモジュールを実行します。C モジュールを使用すると、実行できるエキゾチックなランタイムの量が制限されます。たとえば、C で記述された Python モジュールを使用すると、PyPy のパフォーマンスが大幅に低下します

PyPy、Cython、IronPython、Jython などを試してみて、それが機能するかどうかを確認できますが、C モジュールを使用するとがっかりすることを期待してください。

代わりに、コードをプロファイリングし、ホットスポットまたは内部ループを特定して最適化することをお勧めします。あなたは IO 駆動型のアプリを持っているので、あなたの「遅さ」の大部分は Python の実装とは関係なく、すべて IO 関連のアクティビティに関係していると強く思います。調整が必要なのはアプリではなく、それを実行するマシンである可能性があります。

于 2013-02-06T14:19:22.377 に答える