他のプログ言語、pythonはコードの可読性に広く強調しています。 そのシンプルで表現力豊かな構文は、開発者が長く複雑なコードを書くことなく、ソフトウェアアプリケーションに機能を追加することを可能にします。 また、Pythonは最も動的なプログラミング言語の1つです。 プログラマは、いくつかの方法でPythonを実装することができます。 彼らはPythonのいくつかの実装から選択するオプションさえあります。 Pythonプログラミング言語のデフォルトの実装はCPythonです。C言語で書かれているにもかかわらず、CPythonは標準のPythonライブラリとして配布されています。 Pythonのソースコードを中間バイトコードにコンパイルします。 中間バイトコードはCPython仮想マシンによって実行されます。 多くのプログラマは、幅広いPythonパッケージやC拡張モジュールとの互換性のためにCPythonを選択します。 しかし、CPythonのコンパイルは、様々なコンパイルされたプログラミング言語よりもPythonを遅くし、追加のサーバーリソースを必要とします。
したがって、多くのプログラマは、コードの実行速度を高めるために代替のPython実装を選択します。 Jython、IronPython、Cython、PyPy、CLPythonなど、CPythonに代わるいくつかの選択肢から選択することもできます。 しかし、Pythonプログラマの大部分は、その最適なパフォーマンスと速度のために、他の実装よりもPyPyを好みます。 他の実装とは異なり、PyPyはPythonプログラミング言語で書かれています。 それはPythonプログラミング言語—RPythonのサブセットで書かれたインタプリタを使用しています。PyPyはJust-in-time(JIT)コンパイルによってPythonコードの実行速度を大幅に向上させます。 これは、インタプリタシステムの効率とパフォーマンスを向上させるために、JITコンパイル方法を活用しています。 JITコンパイラはさらに、PyPyを同様の実装よりも短いPythonプログラムと長いPythonプログラムの両方をはるかに高速に実行させます。 いくつかの研究では、PyPyはCPythonよりも約7.5倍高速であることが示唆されています。 PyPyの新しいバージョンはそれぞれ、パフォーマンスがさらに向上し、Pythonプログラムを以前のバージョンよりも速く実行します。
なぜ開発者はPythonの他の実装よりもPyPyを好むのですか?PyPyは、各Pythonプログラムの実行速度を最適化することを目的としています。 これは、組み込みのJITコンパイラが付属しています。 JITコンパイルメソッドを使用して、単純なPythonプログラムと大規模なPythonプログラムの両方をデフォルトのPython実装よりも高速に実行します。 したがって、多くの開発者はPyPyを選択して、大規模で複雑なPythonアプリケーションをより速く実行します。
メモリ消費量の削減
コード実行時間の増加に加えて、PyPyはPythonプログラムのメモリ消費量を減らします。 ただし、メモリ使用量の減少は、プログラムによって異なる場合があります。 しかし、PyPyはまだPythonプログラムがCPythonよりも少ないメモリを消費するようにします。
Stackless Pythonのサポート
PyPyはPythonプログラミング言語の拡張バージョンであるStackless Pythonをさらにサポートしています。 Stackless Pythonは、Pythonよりもスレッドベースのプログラムを効率的に実行します。 これは、プログラマが従来のスレッドに関連する複雑さとパフォーマンスの問題のいくつかを回避するのにも役立ちます。 PyPyを使用している間、プログラマは並行スタイルでコードを書くことによってアプリケーションを高速化することさえできます。
別のサンドボックスアプローチ
PyPyはさらに、プログラマが信頼されていないPythonプログラムをより効率的に実行できるサンドボックスアプローチを採用しています。 サンドボックスアプローチでは、プログラマが安全ではないと考えられる言語機能の使用を制限する必要はありません。 代わりに、Pythonプログラムから外部ライブラリへの呼び出しをスタブに置き換えます。 スタブは、プロセス処理ポリシーに基づいてサードパーティライブラリと対話します。 しかし、サンドボックスアプローチはまだ実用的なプロトタイプです。全体的に、PyPyはPythonの他の実装よりもはるかに高速です。 いくつかの研究で強調されているように、CPythonよりも約7.5倍高速です。 また、PyPyの各新しいバージョンにはパフォーマンスが向上しています。 しかし、実行時間はプログラムによって異なる場合があります。 特定の研究によると、PyPyは純粋なPythonコードをCコード化された関数を呼び出すプログラムよりもはるかに高速に実行します。 したがって、Python開発者は、Pythonコードの実行速度を最適化するためにPyPyの長所と短所を念頭に置いておく必要があります。