LoginSignup
1

PyCon JP 2022 day1 Keynote

Last updated at Posted at 2022-10-17

10/14(金)~15(土)に開催されたPyCon JP 2022に行ってきました。
私自身まだPython歴半年の若輩者ですが、諸先輩方から学びたいと思い初めて参加することにしました。

各セッションごとに、記事を投稿していきたいと思います。
まずはDay1のKeynoteからです。

動画

スライド

  • 公開なし

スピーカー

  • Mark Shanonnさん
    • Microsoftが出資するCPython高速化チームのリーダー

内容まとめ

  • PythonのVMごとの高速化についての話

用語について

VM(バーチャルマシン)

  • Pythonプログラムを動かすためのマシン

Baseline Performance

  • 最適化されてないコードの高速化

Optimizer Performance

  • optimizer自体の高速化

Psyco(2003-2007)

  • JITコンパイラーの特殊化
  • シンプルにする(間違った)仮説を立てた
  • 上手くいったら早い
  • 32bit x86 のみ

PyPy (2006-)

  • Psycoの方向性を正しく行った
  • RPythonで書かれている

HotPy (2007-2010)

  • PhDの研究
  • JITのトレース

Jython and IronPython

Jython (1997-)

  • JVM上で動くPython
  • Cpythonより少し遅い

IronPython (2006-)

  • .NET上で動くPython

Unladen Swallow (2009-2011)

  • Googleのプロジェクト
  • Based on Cpython
  • 最終的な目標は、Cythonにマージすること

Pyston version1(2014-2017)

  • DropBoxのプロジェクト
  • LLVMが使われている

Pyjion (2015-2022)

  • RyuJITが使われている

Skybison (2018-2021)

  • Instagram(現Meta)のプロジェクト
  • 特別なインタプリタを搭載
  • No JITコンパイラー
  • Cinderに移行

Cinder (2019-)

  • Instagram(現Meta)のプロジェクト
  • Based on Cpython
  • 大規模なサーバファームになら有効

VMのプロジェクトは失敗が多かった

  • たくさんのプロジェクトが立ち上がったわりに、過去の失敗から学ばなかった

Pyston version2 (2020-)

  • 最新のVM
  • メソッド単位のJITコンパイラー
  • Based on Cpython

Fater CPython (2021-)

  • Microsoftのプロジェクト
  • CPythonの数倍の高速化を目指す
  • 学んだ教訓を活かす
  • Python 3.11として、10日後くらいにリリースされる

感想

  • 私自身過去にはPHPとかRubyをやってきましたが、処理系まで深く勉強したことがなかったので、学びになりました。
  • 「たくさんのプロジェクトが立ち上がったわりに、過去の失敗から学ばなかった」というのは、各社単体ごとのプロジェクトだったので、それぞれのノウハウが共有されにくかったのかなと思いました。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
1