php8 JITと他のサーバーサイド言語を使ってパフォーマンステストをしました。
php8 JITが早くなったということで、他の主要なサーバーサイドの言語とパフォーマンステストして比較する。
どの言語が一番速いかどうかの検証
パフォーマンステスト用メソッド (フィボナッチ数列の総数計算)
$n=35;functionfibonacci(int$n):int{return(($n<2)?1:fibonacci($n-2)+fibonacci($n-1));}
php8 JIT + 比較する言語
1 | 2 | 3 | 4 | 5 |
---|---|---|---|---|
php8-dev JIT | go 1.13 | Java 11.0.4 | python 3.8.1 | Node v13.6.0(javascript) |
テスト環境
各言語の実行環境は、AlpineをベースのDockerイメージをDockerHubのものを使用しています。
実行結果
言語 | 速度 |
---|---|
php8-dev JIT | 0.444秒 |
go 1.13 | 0.052秒 |
Java 11.0.4 | 0.038秒 |
Python 3.8.1 | 2.449秒 |
Node v13.6.0 | 0.2001秒 |
総括
当たり前ですが、コンパイラ型言語のgoとJavaが圧倒的に早かった
同じインタプリタ言語である、php, python, nodeの中でもpythonが圧倒的に遅かったですが、
Pythonが特別遅いというより、php 8 JITが早くなったという認識のほうが正しいかも。