|
||||||||||
| 前のページ 1 2 3 | ||||||||||
| Zend Engineの仕組み | ||||||||||
|
PHPはスクリプト言語です。そのためPHPのコードはテキストファイルに記載し、Webサーバが管理するディレクトリに配置します。 実際には実行エンジンが、テキストファイルを翻訳しながら実行します。PHP 3とPHP 4では翻訳と実行方法に大きな差があります。その差はZend Engineの有無によるものです。 |
||||||||||
| PHP 3の実行手順 | ||||||||||
|
PHP 3は、1ステップごとに翻訳と実行を行います。これは、恐ろしく効率の悪い動作です。次のリスト1を見てください。 リスト1:おなじみHello PHPを出力するコード
<HTML>
このコードは、4行目にforステートメントがあるので、6行目を10回実行します。このような場合に行単位で翻訳と実行を繰り返すと、6行目を10回翻訳することになります。 このような単純なロジックでも非効率であることは明白でしょう。これが複雑なビジネスロジックであれば、どんなに時間がかかるかわかりません。 そのため現在のPHPと比較すると非常に遅いことは火を見るよりも明らかです。 |
||||||||||
| PHP 4以降(Zend Engine)の実行手順 | ||||||||||
|
PHP 4以降には、例外なくZend Engineが組み込まれています。Zend Engineの有無が、絶大な効果を生んでいるのです。Zend Engineは、内部にランタイムコンパイラとエグゼキュータを備えています(図6)。 実行手順は、次の通りです。
表1:実行手順 PHP 3では、複雑なロジックを持ったPHPコードでは、翻訳時間も増大する問題を抱えていました。これに対してZend Engineを搭載したPHP 4以降は、PHPコードをファイル単位で翻訳してから実行するため、ロジックの複雑さに関係なく翻訳処理時間が少なくなります。このため、Zend Engineの搭載によって、非常に高速でPHPコードを実行できます。 |
||||||||||
| Zend Engineによるモジュール化 | ||||||||||
|
Zend Engineには、PHPの基本機能と追加機能を整理する目的も含まれており、増加する追加機能をモジュールとして実装できるように設計されています。 そのため、PHPには多くの追加モジュールが用意されています。顕著な例の1つがデータベースドライバです。PHP多くのデータベースに対応していますが、それらの機能はモジュール化されて、実装されているのです。 |
||||||||||
| 次回 | ||||||||||
|
今回は、PHPの根幹を担っているZend Engineそのものにスポットを当てました。Zend Engineの有効性が理解できたでしょうか。 さて次回はZend Engineと連携する周辺モジュールについて解説していきます。またPHPを拡張する各種モジュールを紹介します。 |
||||||||||
|
前のページ 1 2 3 |
||||||||||
|
|
||||||||||
|
|
||||||||||
|
||||||||||
|
|
||||||||||
|
||||||||||
|
|
||||||||||
|
||||||||||


