php8 JITと他のサーバーサイド言語を使ってパフォーマンステストをしました。
php8 JITが早くなったということで、他の主要なサーバーサイドの言語とパフォーマンステストして比較する。
どの言語が一番速いかどうかの検証
パフォーマンステスト用メソッド (フィボナッチ数列の総数計算)
$n = 35;
function fibonacci(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が早くなったという認識のほうが正しいかも。
コード