Pystonの開発元は米国時間5月5日、「Python 3.8.8」の実装をベースにさらなる高速化を施した「Pyston 2.2」をリリースしたと発表した。また、このプロジェクトのオープンソース化も発表された。
「CPython 3.8.8」をフォークしたPystonはGitHubで公開されており、「ウェブ関連など、現実世界の大規模アプリケーションに的を絞り、(さまざまな最適化を実施することで)追加作業の必要なしに最大30%の高速化をもたらす」とされている。
Pyston 2.2を際立たせている大きな特徴は、JIT実行エンジンの活用と、属性キャッシングだ。
Pystonの生みの親であるKevin Modzelewski氏はブログで「われわれは、さらなる分野に目を向け最適化し、特にJITと属性キャッシュのメカニズムで高速化を進めた」と説明している。
Modzelewski氏のLinkedInのプロフィールによると、同氏は2017年まで約10年間、Dropboxでプリンシパルエンジニアを務めていた。DropboxはバックエンドのサービスやデスクトップクライアントなどをほぼPythonで構築している。さらにPythonの生みの親として知られるGuido van Rossum氏は2012年にDropboxに雇用され、400万行ものコードの対応を支えていた(van Rossum氏は2019年にDropboxを退社し、現在Microsoftのテクニカルフェローとなっている)。
Modzelewski氏によると、Pystonではさらに、「Pythonでサポートされているものの、ほとんど使われていない数多くのデバッグ機能」を削除することで、高速化を追求するとともに、Pythonのデバッグ機能がコンピューターに与える負荷を削減しているという。
これらのデバッグ機能を削除しても、その影響はわずか2%しかないが、Pythonのコードを実行している世界中のコンピューターの数、そしてコードのカーボンフットプリントを考えると、実際の影響は膨大なものとなるはずだ。
Modzelewski氏は「Pythonを実行している世界中の全てのコンピューターの2%はデバッグ用のチェックを実行している」と記している。
「われわれはこれらチェックを無効化し、デバッグ情報を保持していないバイナリーとでも言うべき『最適化されたビルド』を作成している。これまで通りデバッグ機能を必要とする人々は、互換性があるが故に従来のPythonにおける『デバッグビルド』を使用することができる」(Modzelewski氏)
Modzelewski氏は、オープンソースビジネスモデルを通じ、サポートサービスを手始めにしてPystonから収益を得ようとしている。
同氏は、「(ユーザーが)現在のプロジェクトでPystonを採用する場合、その作業は『python』を『pyston』に置き換えるのと同じくらい容易なものとなっているはずだ」と記している。
この記事は海外Red Ventures発の記事を朝日インタラクティブが日本向けに編集したものです。