JITコンパイラ搭載で高速化を実現する「PHP 8」最初のアルファ版が公開。今年11月26日に正式版を予定

2020年6月30日

PHPの次期メジャーバージョンアップとなる「PHP 8」のアルファ版が公開されました

PHPは2015年にPHP 5からPHP 7へと約10年ぶりのメジャーバージョンアップを果たし、このときに性能を2倍以上へと大幅に向上させました。

PHP 8はここから5年ぶりとして計画されている次期メジャーバージョンアップです。そしてPHP 8ではJITコンパイラの搭載により、さらなる性能向上を実現しようとしています。

JITコンパイラはプログラムの実行時にコンパイルを行い、ネイティブコードを生成して実行するというもの。事前にコンパイル作業が不要なためプログラムを手軽に実行できるうえ、ネイティブコードによる高速な実行が期待できることが特徴です。

PHPのJITコンパイラは、かつてFacebookから独自のPHP処理系「HipHop Virtual Machne」(後にHHVM)などがリリースされていましたが、PHP本体に実装されるのは初めてです。

JITコンパイラの実装を提案するドキュメント「PHP RFC: JIT」では、下記のようにPHPのこれ以上の性能向上はJITコンパイラなしではできないところまできていることなど、JITコンパイラをPHPで採用すべき3つの理由を挙げています。

First, we believe we've reached the extent of our ability to improve PHP's performance using other optimization strategies. In other words - we can't further improve the performance of PHP unless we use JIT.

第一に、私たちは従来とは異なる最適化手法を用いてPHPの性能向上を行うところまでやってきた、という確信に至った。言い換えるならば、JITなしにこれ以上のPHPの性能向上はできないということだ。

Secondly - using JIT may open the door for PHP being more frequently used in other, non-Web, CPU-intensive scenarios - where the performance benefits will actually be very substantial - and for which PHP is probably not even being considered today.

第二に、JITを使うことによって、PHPにはWeb以外のCPUインテンシブな処理にも使われる可能性が開かれるだろう。これは性能向上の利点によるところがかなり大きく、それは現在のPHPの用途では考えられていないようなものだろう。

Lastly - making JIT available can provide us (with additional efforts) with the ability to develop built-in functions in PHP, instead of (or in addition to) C - without suffering the huge performance penalty that would be associated with such a strategy in today's, non-JITted engine. This, in turn, can open the door to faster innovation - and also more secure implementations, that would be less susceptible to memory management, overflows and similar issues associated with C-based development.

最後に、JITを用いることで現行の非JITにまつわる大幅な性能低下を被ることなく、Cの代わりにPHPを用いてを組み込み関数を開発することが(追加の努力で)可能になるだろう。これはつまり、メモリ管理やオーバーフローといったCベースの開発の影響を受けにくくなるわけで、より速いイノベーションの可能性と、よりセキュアな実装につながるだろう。

そのほかPHP 8では変数に複数の型を持たせるユニオン型など、言語仕様にもいくつかの追加などが行われています。

今回リリースされたのは、PHP 8の最初のアルファ版である「PHP 8 α1」。8月にはフィーチャーフリーズが行われ、その後ベータ版をリリース、9月にはリリース候補版がリリースされ、11月26日に正式版リリースが予定されています

あわせて読みたい

プログラミング言語 PHP




タグクラウド

クラウド
AWS / Azure / Google Cloud
クラウドネイティブ / サーバレス
クラウドのシェア / クラウドの障害

コンテナ型仮想化

プログラミング言語
JavaScript / Java / .NET
WebAssembly / Web標準
開発ツール / テスト・品質

アジャイル開発 / スクラム / DevOps

データベース / 機械学習・AI
RDB / NoSQL

ネットワーク / セキュリティ
HTTP / QUIC

OS / Windows / Linux / 仮想化
サーバ / ストレージ / ハードウェア

ITエンジニアの給与・年収 / 働き方

殿堂入り / おもしろ / 編集後記

全てのタグを見る

Blogger in Chief

photo of jniino

Junichi Niino(jniino)
IT系の雑誌編集者、オンラインメディア発行人を経て独立。2009年にPublickeyを開始しました。
詳しいプロフィール

Publickeyの新着情報をチェックしませんか?
Twitterで : @Publickey
Facebookで : Publickeyのページ
RSSリーダーで : Feed

最新記事10本