Increasing Speed: Cython vs Cpython vs Python & Pypy

先週から、CythonとPyPyによるPythonの高速化について2部構成のブログシリーズを開始しました。 Cython の効果についてはすでに説明しましたが、PyPy を見て、そして PyPy と Cython の両方を対比して、議論を続けたいと思います。

PyPyとは?

PyPy は代替の Python インタープリターおよびジャストインタイム (JIT) コンパイラーで、CPython インタープリターと(いくつかの注意事項を除いて)高い互換性を持っています。 速度と効率のために設計されており、プログラムの頻繁に実行される部分を実行時に最適化するためにトレース JIT コンパイラを使用し、実行速度を向上させます。

PyPy は通常の Python プログラムを実行します; 一般に、PyPy で実行できるようにするために、 Python コードを変更する必要はありません。 JIT コンパイラの性質上、プログラムの頻繁に実行される部分を分析する時間が必要なので、数秒以上実行されるプログラムで最もよく機能します。

生産システムで PyPy を使用する最大のハードルは、CPython 拡張モジュールのサポートがないことです。 PyPy のドキュメントによると、拡張モジュールのサポートは実験的で、しばしば CPython よりもずっと遅く実行されます。 つまり、C言語の拡張モジュールを持つサードパーティライブラリの中には、PyPy上で動作しないものがあるかもしれません。科学計算用ライブラリNumPyがその顕著な例です。

The PyPy Wikipedia page and the PyPy website provide plenty of information on what PyPy is and how to use it; the latter has a nice section that shows a list of benchmarks and their speed improvements over CPython.

The PyPy Wikipedia page and the PyPy website provide plenty of information on what PyPy is and how to use it; the latter has also a nice section that shows a list of benchmarks and their speed improvements over CPython.

How Cython vs CPython Works

My main objective in doing this exercise was to understand how the tools work, and to compare the differences in syntax and code structure between them.私は、これらのツールがどのように働くかを理解することが、今回の演習の主な目的でした。 このことを念頭に置いて、私は、Cython のドキュメントに示されている例に基づいて、簡単な数値積分プログラムを書くことを選びました。 インストールと Cython のビルド手順を含むプロジェクトの全ソースは、Bitbucket.

で見ることができます。

コメントを残す

メールアドレスが公開されることはありません。