経緯
日頃業務でpythonを触る中で、10月7日にリリースされたpython3.13にJITコンパイラが試験搭載されるという記事を見た。ただ日頃pythonでコンパイラを意識していない自分にとってはJITコンパイラと聞いても何のことか全くだったので、今回はそのJITコンパイラについて簡単に調べて備忘録としてまとめてみた。
JIT(just in time)コンパイラ
JITコンパイラ(Just-In-Timeコンパイラ)は、プログラムの実行時にバイトコードをネイティブコードに変換する技術です。
これは、プログラムの実行速度を向上させるために使用され、通常はランタイム環境の一部として機能します。
JITコンパイラが導入されていないインタプリタ言語は逐次実行は同じでもプロファイル情報の蓄積はないため同じコードを実行しても実行に時間がかかってしまいます。
今後本導入が行われればpythonの実行速度向上などが期待できます。
実際にJITコンパイラが使用されているjavascriptエンジン(V8)やjava仮想マシン(JVM)などの実行速度を見るとJITの速度が感じると思います。
JITの解析手法なども下記参考記事に記載されているので興味があればぜひご覧下さい。
pycacheとの違いは?
イメージ図
参考
https://drew.silcock.dev/blog/everything-you-need-to-know-about-python-3-13/#how-do-i-try-out-the-jit
https://www.oracle.com/webfolder/technetwork/jp/javamagazine/Java-MA16-JIT.pdf
https://medium.com/couger-blog/vhl-podcast-jitcompiler-d16c5aba7704
https://www.issoh.co.jp/tech/details/3314/
https://www.slideshare.net/slideshow/jit-compiler-jjugccc-2020-fall-nttdata-sakata/239273496
https://www.publickey1.jp/blog/24/pythonjitpython_3130.html