開発ツール

「Python」より30%高速--開発者に聞く「Pyston」の次なる目標

「Pyston」は主にウェブアプリの高速化を目的とした「Python」の実装だ。Pystonの誕生の経緯と今後の目標について開発者に話を聞いた。

 Kevin Modzelewski氏とそのDropboxの同僚たちは、2014年に開発に着手した「Pyston」に関して、非常にシンプルな目標を持っていた。それは、コード自体を高速化することで、Dropboxのサーバーで「Python」コードを実行するコストを削減することだ。

 「われわれは急激に成長していたため、サーバーのコストが急激に膨れ上がっていた」。Modzelewski氏は米TechRepublicにこう語った。「Pythonをもっと速く実行できれば、Pythonの実行に必要なコストを抑えられる」

 Dropboxにおける当初のコスト削減の取り組みは急拡大していき、Modzelewski氏にとって、より大規模なプロジェクトになり、同社は2017年にPythonから距離を置いて、Pystonプロジェクトへの支援を打ち切った。

 Modzelewski氏が同言語への取り組みで気づいたのは、開発者コミュニティーにおいてPythonの高速化が強く望まれており、小規模なアプリケーションでのパフォーマンス向上のためのツールは数多くあるが、Dropboxのような大規模なビジネスロジックタイプのアプリケーション用に設計されたツールは1つもないということだった。

 「Pythonの実行を高速化するツールはたくさんあるが、Dropboxのユースケースに適したツールは全くなかった」とModzelewski氏は述べる。

 「これはPython市場において多額の資金が投じられていた分野だったが、役立つツールはあまり多く開発されておらず、十分なサービスが提供されていなかった」

 話を今に戻そう。Pystonは現在、バージョン2.2だ。すでにオープンソース化されており、Modzelewski氏とその開発者仲間のMarius Wachtler氏が共同創設者としてプロジェクトを主導している。最新の実装では、「Python 3.8.8」から30%のパフォーマンス向上が約束されている。主な利点は、PythonアプリケーションをPystonにドロップするだけで実行でき、コードを書き直す必要がないことだ。これは、Modzelewski氏とその同僚の開発者が約7年前にDropbox用に構築したものとは「完全に異なるもの」でもある。

 「ぜひ利用してほしい。通常のPythonではなくPystonにドロップするだけでよく、他の処理は一切必要ない」とModzelewski氏。

 「始めたころは、Dropboxのコードベースに膨大な行数のコードがあった。それを別の言語に書き直したり、全体に注釈を付けたりするのはあまり合理的ではない」

 Pystonの当初の目標は、Pythonのパフォーマンスを「C++」のような従来のシステム言語に匹敵する水準まで高めるPython実装を作成することだった。

 そのためには、デバッグチェックなど、「CPython」のあまり使用されていない機能をいくつか取り除き、「JavaScript」「C#」「Java」で使われているようなジャストインタイム(JIT)の手法を使用して、実行速度を向上させる必要があった。

 しかし、Pythonは長年にわたって非常に多くの機能が追加されてきたため、何が重要で、何を捨てても構わないかを判断するのは困難だった、とModzelewski氏は語る。「私はPythonに関する知識が非常に豊富だと思っているが、実際に自分で実装せざるを得なくなるまで知らなかった機能がいくつかあった。私はこう思った。『こんな機能は聞いたことがない。この機能に関する記述は読んだことがない。誰かが使っているという話を聞いたことがない』」

 どの機能が開発者にとって有用で、どの機能がそうでないかを把握するには、単純に削除してからフィードバックを待つしかなかった。「いくつかの機能を削除し始めて、『その機能を実際に使っていたのに削除されてしまった』というフィードバックをもらいたいと思っていた」(Modzelewski氏)

 最適化に対するこの積極的なアプローチにより、PystonのパフォーマンスはCPythonよりも大幅に向上した。30%というのは公式に宣伝されている数字だが、これは控えめな見積りだとModzelewski氏は指摘する。その理由は、Pystonが使用するパフォーマンスベンチマークはより現実的で、Pyston開発者の実際の体験がより正確に反映されるためだという。

 「パフォーマンスの測定方法が他のプロジェクトと大きく異なるため、30%という数字を他と直接比較することはできない。他の人たちと同じ方法でパフォーマンスを測定するとしたら、もっと大きな数字になるだろう」と同氏は述べた。

「開発ツール」で読まれている記事

TechRepublic Japanで人気の記事

編集部オススメ

トレンドまるわかり![PR]

財務・経理
人事・労務
マーケ・営業
購買・調達
生産・製造
データ分析
コミュニケーション
通信・通話
文書・コンテンツ
PC・モバイル
新興技術
ITインフラ
クラウドサービス
OS・ミドルウェア
開発
開発ツール
開発支援
ノンプログラミング開発ツール
データベース
運用
セキュリティ

ホワイトペーパーランキング

  1. 5分でわかる、レポート作成の心得!成果至上主義のせっかちな上司も納得のレポートとは
  2. ノートPCは従来ながらの選び方ではダメ!新しい働き方にも対応する失敗しない選び方を徹底解説
  3. 問題だらけの現場指導を効率化!「人によって教え方が違う」を解消するためのマニュアル整備
  4. 緊急事態宣言解除後の利用率は低下 調査結果に見る「テレワーク」定着を阻む課題とその対応策
  5. たしか、あのデータは、こっちのアプリにあったはず…--業務改善のためのアプリ導入がストレスの原因に?

Follow TechRepublic Japan

このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]