ホームページ バックエンド開発 PHPチュートリアル PHP エンジンを高速に実行するための 3 つのコツ_PHP チュートリアル

PHP エンジンを高速に実行するための 3 つのコツ_PHP チュートリアル

Jul 20, 2016 am 10:57 AM
java perl php エンジン 速い 個性的 文法

PHP C、Java、Perl、PHP の革新的な構文を組み合わせた独自の構文。 CGI や Perl よりも高速に動的 Web ページを実行できます。 PHPで作成された動的ページは、HTML文書の中にプログラムを埋め込んで実行するため、HTMLタグを完全に生成するCGIに比べて実行効率が非常に高くなります。 PHP エンジンを高速に実行する 3 つの方法を次に示します。

1. コードの最適化

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

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

<ol class="dp-c">
<li class="alt"><span><span>zend_optimizer.optimization_level=15  </span></span></li>
<li>
<span>zend_extension=</span><span class="string">"/path/to/ZendOptimizer.so"</span><span> </span>
</li>
<li class="alt"><span>zend_loader.enable=Off </span></li>
</ol>
ログイン後にコピー

Win32 プラットフォームの場合は、次のようにする必要があります:

<ol class="dp-c">
<li class="alt"><span><span>zend_optimizer.optimization_level=15  </span></span></li>
<li>
<span>zend_extension_ts=</span><span class="string">"C:\path\to\ZendOptimizer.dll"</span><span> </span>
</li>
<li class="alt"><span>zend_loader.enable=Off </span></li>
</ol>
ログイン後にコピー

実際、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 ページには、このモジュールが適しています。 Remote Communications の担当者は、このモジュールは 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 5 の場合、新しい解決策は ob_gzhandler を使用することです。これにより、上記のクラスと同じ効果を得ることができます。次の文を php.ini に追加するだけです:

<ol class="dp-c"><li class="alt"><span><span>output_handler = ob_gzhandler ; </span></span></li></ol>
ログイン後にコピー

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

php_value Output_handler ob_gzhandler

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

<ol class="dp-c"><li class="alt"><span><span>ob_start(</span><span class="string">"ob_gzhandler"</span><span>); </span></span></li></ol>
ログイン後にコピー

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

4. 結論

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

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

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

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

上記の内容のご紹介がお役に立てれば幸いです。


www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/445766.html技術記事 PHP の独自の構文は、C、Java、Perl、および PHP 独自の革新的な構文を組み合わせたものです。 CGI や Perl よりも高速に動的 Web ページを実行できます。 PHP やその他のプログラミング言語で作成された動的ページ...
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、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衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

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

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

JSON Web Tokens(JWT)とPHP APIでのユースケースを説明してください。 JSON Web Tokens(JWT)とPHP APIでのユースケースを説明してください。 Apr 05, 2025 am 12:04 AM

JWTは、JSONに基づくオープン標準であり、主にアイデンティティ認証と情報交換のために、当事者間で情報を安全に送信するために使用されます。 1。JWTは、ヘッダー、ペイロード、署名の3つの部分で構成されています。 2。JWTの実用的な原則には、JWTの生成、JWTの検証、ペイロードの解析という3つのステップが含まれます。 3. PHPでの認証にJWTを使用する場合、JWTを生成および検証でき、ユーザーの役割と許可情報を高度な使用に含めることができます。 4.一般的なエラーには、署名検証障害、トークンの有効期限、およびペイロードが大きくなります。デバッグスキルには、デバッグツールの使用とロギングが含まれます。 5.パフォーマンスの最適化とベストプラクティスには、適切な署名アルゴリズムの使用、有効期間を合理的に設定することが含まれます。

母音を文字列にカウントするPHPプログラム 母音を文字列にカウントするPHPプログラム Feb 07, 2025 pm 12:12 PM

文字列は、文字、数字、シンボルを含む一連の文字です。このチュートリアルでは、さまざまな方法を使用してPHPの特定の文字列内の母音の数を計算する方法を学びます。英語の母音は、a、e、i、o、u、そしてそれらは大文字または小文字である可能性があります。 母音とは何ですか? 母音は、特定の発音を表すアルファベットのある文字です。大文字と小文字など、英語には5つの母音があります。 a、e、i、o、u 例1 入力:string = "tutorialspoint" 出力:6 説明する 文字列「TutorialSpoint」の母音は、u、o、i、a、o、iです。合計で6元があります

PHPでHTML/XMLを解析および処理するにはどうすればよいですか? PHPでHTML/XMLを解析および処理するにはどうすればよいですか? Feb 07, 2025 am 11:57 AM

このチュートリアルでは、PHPを使用してXMLドキュメントを効率的に処理する方法を示しています。 XML(拡張可能なマークアップ言語)は、人間の読みやすさとマシン解析の両方に合わせて設計された多用途のテキストベースのマークアップ言語です。一般的にデータストレージに使用されます

PHPでの後期静的結合を説明します(静的::)。 PHPでの後期静的結合を説明します(静的::)。 Apr 03, 2025 am 12:04 AM

静的結合(静的::) PHPで後期静的結合(LSB)を実装し、クラスを定義するのではなく、静的コンテキストで呼び出しクラスを参照できるようにします。 1)解析プロセスは実行時に実行されます。2)継承関係のコールクラスを検索します。3)パフォーマンスオーバーヘッドをもたらす可能性があります。

Java 8 Stream Foreachから休憩または戻ってきますか? Java 8 Stream Foreachから休憩または戻ってきますか? Feb 07, 2025 pm 12:09 PM

Java 8は、Stream APIを導入し、データ収集を処理する強力で表現力のある方法を提供します。ただし、ストリームを使用する際の一般的な質問は次のとおりです。 従来のループにより、早期の中断やリターンが可能になりますが、StreamのForeachメソッドはこの方法を直接サポートしていません。この記事では、理由を説明し、ストリーム処理システムに早期終了を実装するための代替方法を調査します。 さらに読み取り:JavaストリームAPIの改善 ストリームを理解してください Foreachメソッドは、ストリーム内の各要素で1つの操作を実行する端末操作です。その設計意図はです

PHPマジックメソッド(__construct、__destruct、__call、__get、__setなど)とは何ですか? PHPマジックメソッド(__construct、__destruct、__call、__get、__setなど)とは何ですか? Apr 03, 2025 am 12:03 AM

PHPの魔法の方法は何ですか? PHPの魔法の方法には次のものが含まれます。1。\ _ \ _コンストラクト、オブジェクトの初期化に使用されます。 2。\ _ \ _リソースのクリーンアップに使用される破壊。 3。\ _ \ _呼び出し、存在しないメソッド呼び出しを処理します。 4。\ _ \ _ get、dynamic属性アクセスを実装します。 5。\ _ \ _セット、動的属性設定を実装します。これらの方法は、特定の状況で自動的に呼び出され、コードの柔軟性と効率を向上させます。

クロスサイトリクエストフォーファリー(CSRF)とは何ですか?また、PHPにCSRF保護をどのように実装しますか? クロスサイトリクエストフォーファリー(CSRF)とは何ですか?また、PHPにCSRF保護をどのように実装しますか? Apr 07, 2025 am 12:02 AM

PHPでは、予測不可能なトークンを使用して、CSRF攻撃を効果的に防ぐことができます。特定の方法には次のものが含まれます。1。フォームのCSRFトークンを生成および埋め込みます。 2.リクエストを処理するときにトークンの有効性を確認します。

一致式(PHP 8)とそれがスイッチとどのように異なるかを説明します。 一致式(PHP 8)とそれがスイッチとどのように異なるかを説明します。 Apr 06, 2025 am 12:03 AM

PHP8では、一致式は、式の値に基づいて異なる結果を返す新しい制御構造です。 1)Switchステートメントに似ていますが、実行ステートメントブロックの代わりに値を返します。 2)一致式の式は厳密に比較され、セキュリティが向上します。 3)スイッチステートメントの脱落の可能性を回避し、コードのシンプルさと読みやすさを向上させます。

See all articles