私のpythonアプリをPYPYに確実に移行できるかどうか疑問に思っています。特に、科学的監視に使用している多くの Python コードとねじれたベースのモジュールのパフォーマンスを改善する必要があり、将来のアプローチを考えています。
Python Foundation は、pypy または Cython のモデルを使用して、CPython のパフォーマンス向上の意図を示していません。
車輪を再発明する必要はありませんが、Guido は python ユーザーのニーズを気にしていないようです。
...そして断然、別のプログラミング言語を使いたくありません。
PD:実際には 2.7 バージョンを使用しています...
編集済み: 私のコードはプロファイリングされ、何度かテストされています。
編集:これについてもっと意見を知りたい...
1 に答える
あなたは CPython に対して間違った印象を持っていると思います。CPython は参照実装であり、常に最新の Python 機能と最新バージョンの Python を備えています。パフォーマンスは重要であり、CPython のパフォーマンスはマイナー リリースごとに大幅に向上しています。CPython は、現在利用可能な実装の中で間違いなく最も「将来的に信頼できる」ものです。
ただし、CPython の非常に重要な機能は、C 環境への橋渡しです。つまり、C ライブラリをラップするか、手動でメモリ管理を行う微調整された C コードを含む C で記述されたモジュールを実行します。C モジュールを使用すると、実行できるエキゾチックなランタイムの量が制限されます。たとえば、C で記述された Python モジュールを使用すると、PyPy のパフォーマンスが大幅に低下します。
PyPy、Cython、IronPython、Jython などを試してみて、それが機能するかどうかを確認できますが、C モジュールを使用するとがっかりすることを期待してください。
代わりに、コードをプロファイリングし、ホットスポットまたは内部ループを特定して最適化することをお勧めします。あなたは IO 駆動型のアプリを持っているので、あなたの「遅さ」の大部分は Python の実装とは関係なく、すべて IO 関連のアクティビティに関係していると強く思います。調整が必要なのはアプリではなく、それを実行するマシンである可能性があります。