ホームページ php教程 php手册 PHP エンジンをフルスピードで実行するためのコツ

PHP エンジンをフルスピードで実行するためのコツ

Jun 21, 2016 am 08:57 AM
php

人気のある Web プログラミング言語としての PHP の最大の利点は速度です。 PHP4 はこれを非常にうまく行っており、これより高速なスクリプト言語はほとんどありません。ただし、アプリケーションの負荷が高く、帯域幅が比較的小さい場合、またはサーバーのパフォーマンスに影響を与える他のボトルネックがある場合は、私が処方した処方箋のいくつかを試して、それらが効果的であるかどうかを確認することをお勧めします。

人気のある Web プログラミング言語としての PHP の最大の利点は速度です。 PHP4 はこれを非常にうまく行っており、これより高速なスクリプト言語はほとんどありません。ただし、アプリケーションの負荷が高く、帯域幅が比較的小さい場合、またはサーバーのパフォーマンスに影響を与える他のボトルネックがある場合は、私が処方した処方箋のいくつかを試して、それらが効果的であるかどうかを確認することをお勧めします。

1. コードの最適化

コードの最適化というと、きちんとした明確なコードを思い浮かべるかもしれませんが、速度を追求したい場合は、PHP ソース コードに対応する調整を行う必要があるため、この記事の目的はそこではありません。一般に、コードを判読できなくするために、冗長なコメントは削除されます。しかし、優れた資質を持つプログラマーにとって、これは驚くべきことです。幸いなことに、Zend Technologies はこれを支援する Zend 最適化エンジンをリリースしました。現在は無料ですが、Zend Optimizer ライセンスに従う必要があります。本製品は、エンジンが生成する中間コードを最適化することができます。

このエンジンのインストールは比較的簡単です。 プラットフォームに対応するバージョンをダウンロードした後、圧縮ファイルを解凍し、次の 2 行を PHP.ini ファイルに追加し、Web サーバーを再起動します。完了しました。

zend_optimizer.optimization_level=15

zend_extension="/path/to/ZendOptimizer.so"

zend_loader.enable=オフ

Win32 プラットフォームの場合は次のようになります:

zend_optimizer.optimization_level=15

zend_extension_ts="C:\path\to\ZendOptimizer.dll"

zend_loader.enable=オフ

あ!それは間違いではないですか?なぜ3行なのでしょうか?実際には 3 行目はオプションです。 zend_loader をオフにすると速度が少し向上するようなので、この 3 行目を PHP.ini に追加する価値があります。これをオフにする前提条件は、Zend 暗号化プログラムを使用していないことであることに注意してください。

2. バッファリング

さらに速度を向上させたい場合は、バッファリング技術の使用を検討する必要があります。 Zend Cache (ベータ版)、APC、Afterburner キャッシュ、jpCache などの代替ソリューションがいくつかあります。

上記はバッファ モジュールで、.PHP ファイルに対する最初のリクエストによって生成された中間コードを Web サーバーのメモリに保存し、後続のリクエストに対して「コンパイルされた」バージョンを返します。これにより、ディスクの読み取りと書き込み、およびメモリ内でのすべての作業が削減されるため、このプロセスによりアプリケーションのパフォーマンスが大幅に向上します。

このような製品は簡単に入手できるものがたくさんありますが、どれを選択すればよいでしょうか?

Zend Cache は優れた商用製品です。これらの大きな PHP ページを初めてロードすると、明らかに速度が向上し、サーバーがより多くのリソースを予約するようになります。残念ながら、この製品にはお金がかかりますが、場合によってはお金をケチりたくない場合があります。

Afterburner Cache は Bware Technologies の製品で、まだベータ版のようですが、Zend Cache ほど良い結果は得られず、Zend 最適化エンジンとも連携できません。無料なのでこのモジュールを採用しました。

APC (Alternative PHP Cache) も Community Connect が公開している無料モジュールで、本番環境でも使用できるようです。

3. Web コンテンツの圧縮

ますます混雑するネットワークにとって、帯域幅を節約することは水を節約することと同じくらい価値があります。 IETF 標準によれば、ほとんどのブラウザは gzip を使用して圧縮されたコンテンツをサポートする必要があります。つまり、gzip 圧縮されたコンテンツをブラウザに送信すると、ブラウザはデータを透過的に解凍します。

mod_gzip は、Remote Communications によって起動された無料の Apache モジュールで、静的な Web コンテンツを圧縮してブラウザに送信できます。ほとんどの静的 Web ページには、このモジュールが適しています。

ですが

Remotecommunications の関係者は、このモジュールは mod_PHP、mod_perl、mod などによって生成されるすべての動的コンテンツをサポートしていると言っていますが、mod_gzip メーリング リストから判断すると、この問題はまだ解決されていないようです。 1.3.14.6fにあります。

動的コンテンツを圧縮したい場合は、スクリプトの最初と最後で使用される PHP クラス、class.gzip_encode.PHP を使用できます。 Web サイト全体では、php.ini の auto_prepend および auto_append 内の関数が呼び出されます。詳細については、このクラスのプログラムを参照してください。このプログラムには十分なコメントがあり、著者がほぼすべてを説明しています。ただし、使用する前に、zlib をサポートするように PHP をコンパイルする必要があります。

PHP 4.0.4 の場合、新しい解決策は ob_gzhandler を使用することです。これにより、次の文を php.ini に追加するだけで、上記のクラスと同じ効果を実現できます。

output_handler = ob_gzhandler ;

これにより、PHP が出力バッファリングをアクティブ化し、すべての出力を圧縮できるようになります。すべてのコンテンツを圧縮して出力したくない特別な理由がある場合は、.htAccess ファイルに次の行を追加して、対応するディレクトリ内のファイルを圧縮できます。

PHP_value 出力ハンドラー ob_gzhandler

PHP コードに直接追加することもできます:

ob_start("ob_gzhandler");

この圧縮技術は非常に効果的ですが、Netscape Communicator ユーザーの場合、グラフィック ファイルは圧縮できないため、不完全に送信されたように見えるため、IE ではこの問題は発生しません。jpeg および gif ファイルの圧縮をオフにする必要があります。

結論:

この記事で説明した手法を採用すると、Web サイトのパフォーマンスが向上しますが、次の点に注意してください。

- PHP がボトルネックの原因ではない可能性があります。他の原因 (データベースなど) を再確認してください

-サーバーのパフォーマンスを最高の状態に調整することはできません。したがって、PHP とそのバッファリングについて文句を言う前に、サーバーをアップグレードするか、動的負荷分散テクノロジー (多額の費用がかかります) を採用する時期なのかを検討してください。

- コンテンツの圧縮を過小評価しないでください。100 MB のイントラネット上の PHP アプリケーションの速度が向上している一方で、モデム ユーザーが 100 KB の HTML ページについて不満を抱いていることを忘れないでください。



このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

CakePHP プロジェクトの構成 CakePHP プロジェクトの構成 Sep 10, 2024 pm 05:25 PM

この章では、CakePHP の環境変数、一般設定、データベース設定、電子メール設定について理解します。

Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Dec 24, 2024 pm 04:42 PM

PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

CakePHP の日付と時刻 CakePHP の日付と時刻 Sep 10, 2024 pm 05:27 PM

Cakephp4 で日付と時刻を操作するには、利用可能な FrozenTime クラスを利用します。

CakePHP ルーティング CakePHP ルーティング Sep 10, 2024 pm 05:25 PM

この章では、ルーティングに関連する次のトピックを学習します。

CakePHP ファイルのアップロード CakePHP ファイルのアップロード Sep 10, 2024 pm 05:27 PM

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

CakePHP データベースの操作 CakePHP データベースの操作 Sep 10, 2024 pm 05:25 PM

CakePHP でデータベースを操作するのは非常に簡単です。この章では、CRUD (作成、読み取り、更新、削除) 操作について理解します。

CakePHP について話し合う CakePHP について話し合う Sep 10, 2024 pm 05:28 PM

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

CakePHP バリデータの作成 CakePHP バリデータの作成 Sep 10, 2024 pm 05:26 PM

Validator は、コントローラーに次の 2 行を追加することで作成できます。

See all articles