この記事はPHP Advent Calendar 2014の7日目です。
僕は先日のPHPカンファレンス2014でPHP7に関するLTをしました︵参照‥﹁PHPNGの動向﹂︶。ただ、時間が限られていたこともあり、あまり踏み込んだ内容には触れませんでした。
本稿ではLTの内容から深掘りし、zvalという内部的な構造体がどう変わるのか、性能面のメリットにフォーカスして解説してみます。
僕は先日のPHPカンファレンス2014でPHP7に関するLTをしました︵参照‥﹁PHPNGの動向﹂︶。ただ、時間が限られていたこともあり、あまり踏み込んだ内容には触れませんでした。
本稿ではLTの内容から深掘りし、zvalという内部的な構造体がどう変わるのか、性能面のメリットにフォーカスして解説してみます。
PHPをとりまく状況
まず最近のPHPの話題をおさらいしておきましょう。
これまでPHPには実用レベルの別実装が存在しない状態が続いていましたが、HHVMの登場で状況が変わってきました。HHVMはFacebookが開発しているPHP実行環境で、PHPより高速で互換性も高いのが特徴です。Facebookで実際に利用されているだけでなく、他の企業でも商用サービスで利用する事例が増えてきています。
そんな中、2014年のはじめ頃にPHPの性能改善プロジェクトPHPNGがスタートしました。これはPHPコミッターでありZend Technologies社員でもあるDmitry Stogovによるもので、PHP内部のデータ構造の変更をすることでPHPの言語仕様を変えずに性能改善を行うものです。このプロジェクトは極めて順調に進み、2014年8月にはPHP7のベースプロジェクトとして採用されました。
説明が前後してしまいますが、PHPのバージョニングについても最近動きがありました。現時点でのPHPの最新版は5.6.3ですが、次のメジャーバージョンアップで7.0になることが決まっています︵参照‥﹁PHP RFC: Name of Next Release of PHP﹂︶。PHP7は2015年11月のリリースを目指しており、2015年6月にはコードフリーズしてRC1が出る予定です︵参照‥﹁PHP RFC: PHP 7.0 timeline﹂︶。
ちなみに、PHP7での性能改善はかなり進んでいます。下記グラフはZendCon 2014での発表からの引用ですが、WordPressでベンチマークテストしたときにPHP5.6の約1.7倍、HHVMに匹敵する性能となっています。
︵﹁PHPNG a New Core for PHP7﹂より︶
これまでPHPには実用レベルの別実装が存在しない状態が続いていましたが、HHVMの登場で状況が変わってきました。HHVMはFacebookが開発しているPHP実行環境で、PHPより高速で互換性も高いのが特徴です。Facebookで実際に利用されているだけでなく、他の企業でも商用サービスで利用する事例が増えてきています。
そんな中、2014年のはじめ頃にPHPの性能改善プロジェクトPHPNGがスタートしました。これはPHPコミッターでありZend Technologies社員でもあるDmitry Stogovによるもので、PHP内部のデータ構造の変更をすることでPHPの言語仕様を変えずに性能改善を行うものです。このプロジェクトは極めて順調に進み、2014年8月にはPHP7のベースプロジェクトとして採用されました。
説明が前後してしまいますが、PHPのバージョニングについても最近動きがありました。現時点でのPHPの最新版は5.6.3ですが、次のメジャーバージョンアップで7.0になることが決まっています︵参照‥﹁PHP RFC: Name of Next Release of PHP﹂︶。PHP7は2015年11月のリリースを目指しており、2015年6月にはコードフリーズしてRC1が出る予定です︵参照‥﹁PHP RFC: PHP 7.0 timeline﹂︶。
ちなみに、PHP7での性能改善はかなり進んでいます。下記グラフはZendCon 2014での発表からの引用ですが、WordPressでベンチマークテストしたときにPHP5.6の約1.7倍、HHVMに匹敵する性能となっています。
![f:id:hnw:20141206165304p:image f:id:hnw:20141206165304p:image](https://cdn-ak.f.st-hatena.com/images/fotolife/h/hnw/20141206/20141206165304.png)