ホームページ >バックエンド開発 >PHPチュートリアル >PHP の本質を学び、効率的な PHP コードを作成するパフォーマンス_PHP チュートリアル
1. ベンチマーク テストを使用してコードのパフォーマンスを検出します
Web アプリケーションに関して言えば、ベンチマークとは、できる限り多くのトラフィックでコードをロードし、そのパフォーマンスを測定する「ストレス テスト」を指すことがよくあります。
ApacheBench (ab) と JMeter という 2 つのベンチマーク ツールをお勧めします。
ストレス テストを実行するには、同時にオンラインのユーザーと多数のリクエストという 2 つのことが必要です。これらのツールでは、同時に実行される多数のアプリケーション スレッドがユーザーを表します。したがって、「同時スレッド = 同時ユーザー」ということだけを覚えておく必要があります。
1. ApacheBench は非常にシンプルで、通常は Apache インストールに含まれるか、Apache 開発パッケージの一部として含まれます (simple ab と呼ばれるバイナリ ファイル)。 ab を使用するには、リクエストの総数 (-n) と同時スレッドの数 (-c) を指定するだけで機能します。
例: ここでは、-n 1000 -c 20 を使用して 20 個の同時スレッドを生成し、1000 個のリクエストを実行します。
リーリーab の使用方法のリファレンス: http://httpd.apache.org/docs/2.0/programs/ab.html
2. JMeter は GUI を備えた別の Apache プロジェクトであり、より多くの機能を備えています。 JMeter を使用するには、テスト計画を作成し、スレッド グループを追加し、サンプラーを追加し、JMeter 構成を指定し、Cookie ハンドラーなどのその他のオプションを追加し、結果を処理するリスナーを追加する必要があります。
JMeter Web サイト: http://jmeter.apache.org/
2. キャッシュを使用してコードのパフォーマンスを向上させる
1. Apache サーバーの場合、apc を使用してコード キャッシュを実装します。
PECL (PHP Extension Community Library、PHP Extension Shared Class Library) から APC を取得し、コンパイルして、拡張機能をインストールします。
リーリーこの後、設定に応じて、php.ini ファイルを編集してこれを追加する必要があります:
リーリーApache を再起動すれば準備完了です。
APC の使用方法のリファレンス: http://www.php.net/manual/en/book.apc.php
2. Windows/IIS サーバーの場合は、Microsoft の WinCache を使用してコード キャッシュを実装します。
WinCache Web サイト: http://www.iis.net/downloads/microsoft/wincache-extension
3. memcached を使用してセッション データ キャッシュを実装します。Memcached は、メモリベースのクラスター対応のキー/値ペア ストレージです。 memcached 拡張機能を有効にすると、ディスク ストレージ セッションの代わりに memcached を自動的に使用できます。
memcached Web サイト: http://memcached.org/
Memcached の使用方法のリファレンス: http://www.php.net/manual/zh/book.memcached.php
memcached をインストールします:
リーリー
php.iniを設定します:
リーリー
3. プログラムの概要分析を実施し、問題がどこにあるかを見つけます。
プログラム プロファイリングは、正確な時間またはメモリ テストを使用してコード内の各アクションを実行する行為です。分析を通じて問題の箇所を特定し、最適化します。
よく使用される 2 つのプロファイリング ツールがあります:
1. Derick Rethans によって作成された信頼性の高い Xdebug ツール。結果は KCachegrind または QCachegrind によって監査されます。
Xdebug Web サイト: http://xdebug.org/
KCachegrind Webサイト:http://sourceforge.jp/projects/freshmeat_kcachegrind/releases/
QCachegrind Webサイト:http://sourceforge.jp/projects/freshmeat_kcachegrind/releases/
2. 新しく開発された XHProf ツールは Facebook のアプリケーションで、XHGui Web のフロントエンド部分として Paul Reinheimer によって作成されました。
XHProf ウェブサイト: http://pecl.php.net/package/xhprof
XHGui ウェブサイト: https://github.com/perftools/xhgui
概要:
まず第一に、全体的なパフォーマンスの向上を達成できるように、パフォーマンスの低下という最大の問題を解決する必要があります。 SQL クエリに 10 秒かかる場合、その実行速度が 50% 向上することになりますが、PHP 関数の実行に 5 秒かかる場合、実際には 50% 速度が向上するだけです。 0.5秒を節約します。ある時点で、ハードウェアのパフォーマンスによって完全に制限されるようになります。私たちの経験では、CPU や RAM よりもディスクやネットワーク I/O によって制限される可能性が高くなります。これは、複数のコンピューター間でアプリケーションのスケーリングを開始する必要がある場合です。