SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

特集記事

Zend Server 8 英語版に搭載されたAPMの威力

無償環境で挑むPHPアプリケーションのデバッグ&パフォーマンスチューニング

  • X ポスト
  • このエントリーをはてなブックマークに追加

コラム:PHP進化の歴史

 PHP 5.6から約1年後の2015年11月にPHP 7 がリリースされる見込みです。PHP 5.0がリリースされたのが2004年7月ですから、バージョン番号の1桁目が更新されるのは約10年ぶりとなる大事件なのです。PHP 7 に関しては、『PHP 7のパフォーマンスが高い理由』で詳しく解説しています。本コラムでは、PHP 7 に至る改善の歴史を紹介します。

PHPの誕生

 1994年にRasmus Lerdorf氏が、オンラインで公開している経歴書のアクセス履歴を調べるために作成したスクリプト群を「Personal Home Page Tools」と名付けました。「Personal Home Page Tools」は、CGIバイナリ群で、C言語で書かれていました。Rasmus Lerdorf氏は、1995年6月に「Personal Home Page Tools」を公開しています。その後、改良が加えられ、1996年4月にPHP/FIという名前で公開され、さらに2か月後にはPHP/FI 2.0が公開されました。現在のPHPは、PHP/FIの番号を引き継いでいます。

PHP 3の登場

 Andi Gutmans氏とZeev Suraski氏が中心となり、Rasmus Lerdorf氏と協力して強力な拡張性を備えたPHP 3の開発をスタートしました。内部構造の全面的な書き換えを行い、9か月の開発期間を経て1998年6月にPHP 3.0がリリースされました。名前もPHP: Hypertext PreprocessorをベースとしたPHPに改められました。

PHP 4の登場

 PHP 3の経験から、Andi Gutmans氏とZeev Suraski氏は、パフォーマンス改善と更なる拡張性を備えたPHPの開発に着手しました。そのコア部分が、Zend EngineⅠです。Zend Engineによって、PHPコードのパースと実行が行単位からファイル単位に改善しています。また、外部機能をExtentionとして、取り込めるようになりました。Zend EngineⅠの導入により、PHP処理スピードは大幅に改善されました。

図28 Zend Engine Ⅰ の改善点
図28 Zend Engine Ⅰ の改善点

PHP 5の登場

 PHP 5.0では、Zend EngineⅡが導入されています。オブジェクト指向が強化されるなど、言語仕様の強化が主な改善点です。スピードの改善はそれほどではありません。

 処理スピードの改善は、PHP 5.5で行われます。Zend Techは、それまで有償プロダクトで提供していた高速化モジュールを無償提供しました。Zend OPcacheです。

 Zend OPcacheは、パース済の実行コード(OP-code)をメモリまたはディスクに保存します。2回目以降は、パース処理を行わず実行コードを使用します。パース処理が省かれるので、処理時間の10%~30%が削減されます。

図29 Zend OPcacheの原理
図29 Zend OPcacheの原理

PHP 7の登場

 PHP 7では、内部構造の全面的な書き換えを行います。Zend EngineⅢです。PHP 5.6と比較して倍近い処理スピードが実現します。PHP 7の詳しい解説は、『PHP 7のパフォーマンスが高い理由』をご覧ください。

図30 PHP 7 phpinfo関数出力:モジュール一覧
図30 PHP 7 phpinfo関数出力:モジュール一覧

 このようにPHPが誕生した頃の手軽さを保ちながら、機能面だけでなく処理速度でも大幅な改善が行われています。PHP 7は、PHP改善の歴史の中でも大きなトピックスといえます。

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
特集記事連載記事一覧

もっと読む

この記事の著者

佐藤 栄一(コネクト株式会社)(サトウ エイイチ(コネクトカブシキガイシャ))

PHPによるWebシステム構築をプロダクトとサポートサービスで支援するコネクト株式会社(創業時はゼンド・ジャパン株式会社)の創立メンバー。主要事業の一つであるMySQLの技術担当(Oracle Certified Expert,MySQL 5.1 Cluster Database Administrator)。ビックデータで注目を集めるCassandraも合わせて担当する。http://www.konekto.jp/

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/8908 2015/09/14 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング