IT技術 PHP プログラミング

PHP8の登場でプログラミング言語のシェアが大きく変わる!?

PHPプログラミングのキービジュアル

PHP8はPHP7よりもさらに処理速度が大きく向上する

2015年12月3日にPHP7が登場しました。
PHP7は、その前のバージョンのPHP5.6よりも最大2倍高速化されました(※注1)。

PHP7は、世界的にメジャーなインタプリタ言語(※注2)でありサーバサイドプログラミング言語であるPHP、Python、Rubyの中で最も処理速度が速いプログラミング言語になりました。

そして、海外のPHPに関する最新情報を配信しているブログ「 stitcher.io 」によると、2020年末までに次世代のPHPのメージャーバージョンであるPHP8が登場する予定だそうです。

PHP8では、「JIT(Just In Time)コンパイラ」が実装され、現在でも速いPHP7よりもさらに処理速度が向上します。

次のブログ記事では、開発中のPHP8(JITコンパイル付きPHP)のベンチマーク(実行速度テスト)について書かれていますが、2019年2月頃の時点では、PHP7.3.0の2倍速度向上したという結果が出ています。
2017年7月頃からこの速度は変わっていませんので、おそらく現在は難易度の高いJITコンパイラの安定に注力しており、PHP8リリース時まで速度は大きくは変わらないのではないかと思われます。


※注1:PHP6は存在しません。PHP5.6の次のバージョンはPHP7.0です。

※注2:インタプリタ言語とは、プログラム実行時にプログラムソースを解析して機械語や中間言語に変換して実行する言語です。
これに対して、実行前にあらかじめ機械語や中間言語に変換しておくプログラミング言語のことをコンパイラ言語と言います。
インタプリタ言語には、PHP、Python、Ruby、JavaScriptなどがあり、コンパイル言語には、C、C++、Javaなどがあります。

JITコンパイラとは

JITコンパイラは、プログラム実行時にプログラムソースを解析し、繰り返し使用される処理を部分的に機械語にコンパイルするような最適化処理を行い処理速度を向上させる手法です。

より詳しいJITの解説は、Mozillaの次のページ(英文)が参考になります。
JavaScriptのJITコンパイルについての解説ですが概念は同じです。

A crash course in just-in-time (JIT) compilers
https://hacks.mozilla.org/2017/02/a-crash-course-in-just-in-time-jit-compilers/

PHPのJITコンパイラ実装の試みは2011年にZend (PHPを開発しているメインの組織) で開始されました。
そして、PHP7でパフォーマンス向上のためにJITコンパイラ実装するという話がありました。
しかし、JITコンパイラ開発の難易度の高さに対して、PHPがメインとする典型的なWebアプリのパフォーマンスが大幅に向上することはありませんでした。
そのため、PHP7でのJITコンパイラ実装は見送り、それ以外でのパフォーマンスを向上させる方法が数多く実装されました。
そして、PHP7はインタープリタ系のサーバーサイドプログラミング言語としては最速のプログラム言語になりました。

PHP7で、JITコンパイラを実装しないパーフォーマンス最適化対策はやり尽くし、次に速度向上をさせるにはJITコンパイラ実装しか残されていません。
PHP開発メンバーの間で投票を行った結果、PHP8にJITコンパイラを実装することになりました。

JITコンパイラ実装のPHPの可能性

PHPにJITコンパイラを実装されることで次のような可能性があります。

  • さらなる速度の向上
    JIT以外のパーフォーマンス最適化はやり尽くし、JITを使わない限りさらにパフォーマンスが向上させることはできないレベルに到達している。
  • Web以外で活用される機会の増加
    PHPがWeb以外のCPUを集中的に使用する処理でも活用される可能性が増える。
    つまり、PHPのシェアが増える可能性もある。
  • 組み込み関数の開発機能の提供
    PHP実行エンジンはC言語で作られており、組み込み関数もC言語で実装されている。
    しかし、JITを利用可能にすることで、PHPで組み込み関数を開発できるようになる。
    使用頻度の高い処理は、PHPで組み込み関数化させて、さらに処理速度を向上させることができる。

おわりに

今後登場する次世代PHPであるPHP8についてまとめてみました。
現時点でも、PHPは、Web系のプログラミング言語として処理の速いプログラミング言語ですが、さらに速度向上し、Webプログラミング以外での用途が増える可能性があります。
今後のPHPの動向について目が離せませんね!

<参考サイト>

-IT技術, PHP, プログラミング
-, , ,

Copyright© ハッピー・プログラミング・ライフ , 2020 All Rights Reserved.