プログラミング言語: Python は遅いが、速くなろうとしている

Python は、習得が容易で用途が広く、データ サイエンスに役立つライブラリが何千もあるため、非常に人気があります。 しかし、そうではないことが 1 つあります。それは高速です。

それが Python 3.11 で変更されようとしています。現在、今年後半に安定版がリリースされる前に、プレビュー (バージョン 3.11.0b1) の最初のベータ段階にあります。 Core Python (CPython) 開発者の Mark Shannon は、今週開催された PyCon 2022 カンファレンスで、Python を高速化するプロジェクトの詳細を共有しました。開発者は、ブラウザーで Python コードを実行するという目標の進捗状況も披露しました。

昨年、Microsoft は、Python の作成者である Guido van Rossum と Shannon が率いる Python Software Foundation (PSF) のプロジェクトに資金を提供し、Python を現在の安定した 3.10 シリーズの 2 倍の速度にしました。 ビジョンは、Python を C のパフォーマンスに近づけることです。

参照: 昇進する方法: はしごを登ってキャリアを成功させる 5 つの方法

Microsoft は 2020 年に van Rossum を雇い、任意のプロジェクトを自由に選択できるようにしました。 昨年の PyCon 2021 カンファレンスで、彼は「自分のルーツに戻ることを選んだ」と述べ、Python の有名なパフォーマンスの欠如に取り組みます。

Tensor Flow、Numpy、Pandas、および AWS の Boto3 SDK for Python などの多くのプラットフォームのおかげで、機械学習とデータ サイエンスによって採用が促進されたため、おそらくパフォーマンスは Python の最優先事項ではありませんでした。 これらのプラットフォームは、1 か月に数千万回ダウンロードされ、多くの場合ハードウェアに制約されない環境で使用されます。

Faster CPython Project は、過去 1 年間の CPython 3.11 のパフォーマンスに関するいくつかの更新を提供しました。 PyCon 2022 に先立って、プロジェクトは 3.11 ベータ プレビューと 3.10 を比較した多数のパフォーマンス メトリクスに関するより多くの結果を公開し、3.11 が全体的に 3.10 よりも 1.25 倍高速であることを示しました。

Shannon は、プロジェクトが Python のパフォーマンスを改善する能力について現実的ですが、改善によって Python の実行可能な使用をより多くの仮想マシンに拡張できると考えています。

「Python は遅いと広く認識されています。Python が C、Fortran、さらには Java などの低レベル言語のパフォーマンスに到達することはありませんが、V8 for Javascript やlua の luajit」と彼は昨年、Python Enhancement Proposal (PEP) 659 に書いています。

「具体的には、PyPy やその他の代替仮想マシンを使用できないユーザーを含め、Python のすべてのユーザーに利益をもたらすために、CPython でこれらのパフォーマンス目標を達成したいと考えています。」

PEP 659 で詳述されている重要なアプローチは、「コードを積極的に特殊化しますが、非常に小さな領域で、専門化の誤りに迅速かつ低コストで適応できる、焦点を絞った適応型インタープリター」です。

前述のように、VM の最適化は「費用がかかり」、多くの場合、長い「ウォームアップ」時間が必要です。 この時間の浪費を避けるために、VM は「関数を数回実行した後でも特殊化が正当化されると推測する」必要があるため、インタープリターは最適化と最適化解除を継続的かつ非常に安価に行う必要があります。

これにより、プログラムの実行中に個々のバイトコードを追跡する CPython のインタープリターが高速になります。 PSF によると、新しいインタープリターの作業はほぼ完了していますが、ループとバイナリ操作の動的特殊化を完了する必要があります。

さらに、3.11 のメモリ消費量は 3.10 から変わっていません。

参照: 開発者は燃え尽き症候群に直面しています。 企業がそれを修正しようとしている方法は次のとおりです

Python のパフォーマンスのための Just-In-Time (JIT) コンパイラの問題について、Shannon はそれは優先事項ではなく、Python 3.13 までは実現しない可能性が高いと、Python Software Foundation のイベントの報道によると示唆しました。

データ サイエンス向けの Anaconda Python ディストリビューションのメーカーである Anaconda は、Python を超える速度の向上を約束する Python の実装である Pyston プロジェクトを支援しています。

Python を高速化するための Anaconda の古い取り組みの 1 つは、CPython 用の LLVM ベースの JIT コンパイラである Numba プロジェクトでした。これは、CPU または GPU で実行される Python の数値関数を高速化しますが、プログラム全体を最適化することはできず、Python の幅広い使用に対応していません。ボックス。 もう 1 つは、パフォーマンスを高速化するための JIT コンパイラを使用した CPython の実装である PyPy です。

Faster Python 実装計画によると、CPython 3.12 では、特殊なコードの小さな領域をコンパイルする「小さな領域用の単純な JIT コンパイラ」が得られる可能性がありますが、3.13 ではコンパイラが拡張され、コンパイルのために領域が拡張されます。

Leave a Comment

Your email address will not be published. Required fields are marked *