PHPパフォーマンスチューニング:12の簡単なヒント
すべてのPHP webアプリケーションでは、パフォーマンスは本当に重要です。 ユーザーは、ページの読み込みが遅い、アクセスできないページ、応答しないリンク、およびそれらのユーザーを顧客として失うことにつながる他の多くの要因に ユーザーのニーズを満たすためには、パフォーマンスを継続的にチェックし、監視する必要があります。 あらゆるソフトウェア-アプリケーションはシステムの性能を監視し、測定するための用具を必要とする。 ここでは、12の簡単なPHPパフォーマンスチューニングのヒントを紹介します。
PHPパフォーマンスチューニングのヒント
ボトルネック
最初のステップは、問題の根本原因を見つけるために、アプリケーションのパフォーマンスの障害 問題を特定することで、アプリケーションに最適なソリューションとオプションを計画して選択できます。 その後、ソリューションを実装し、その後結果を測定することができます。 Phpのパフォーマンスを調整するには、PrefixやRetraceなどのツールを使用できます。
接頭辞は、低速クエリを強調表示するために使用され、コードの動作などを検証します。 どの最適化ツールがアプリケーションのパフォーマンスを測定するのに役立つかを認識する必要があります。 また、アプリケーションのニーズのリストを作成し、優先度の高い順に並べ替える必要があります。 このようにして、いくつかの項目が心配することが重要ではないことを識別できます。
プロファイリング
PHPパフォーマンスチューニングのヒントの1つはプロファイリングです。 あなたのニーズに合うように識別する必要がある多くのプロファイリングツールがあります。 すべてのPHPプロファイラーには、独自の機能と利点があります。 私はインターネットでPHP profilerを閲覧してきましたが、誰もがそれを使用する上で独自の長所と短所を持っています。 Stackifyには、プロファイリングツールとして使用される接頭辞があります。 サーバー側のコード、SQL、およびシステムで使用されるその他のメソッドのパフォーマンスに関する継続的なフィードバックを得ることができる独自の特 Prefixの最も優れた最も印象的な機能は、webアプリケーションを開発するときに要求パイプライン全体を視覚化することです。
Prefixをダウンロードしてインストールすると、
- ページを提供するのにかかった合計時間
- キャッチされた例外がありました
- 返されたステータ200
そして、あなたが監視し、あなたのアプリケーションについて知る必要があるその他の重要な詳細。
コードの最適化
コードの品質を確保するためのPHPパフォーマンスチューニング方法の一つは、最良のコード最適化プロセスとテクニックを持つことです。 コードは、メモリを利用し、より迅速に実行し、より少ない入力操作と出力操作を実行するように最適化することができます。 コードの最適化はPHPパフォーマンスチューニングのヒントの一つですが、コードが複雑でなければならないことや、標準ライブラリを置き換える必要がある 最適化は、コードのトレースと保守に多くの時間を要することがあります。 最悪の場合、アプリケーションの重要でない部分を最適化するのに多くの時間を無駄にしているため、これらの最適化は利点にはなりません。
ほとんどのアプリケーションは、通常、PaaSサービス、ElasticSearch、Redis、キューイング、SQL&NoSQLデータベース、MongoDBなどの複数の依存関係を使用します。 接頭辞を開発者がある場合には、そのコードはすべての依存関係を修正。 また、すべての依存関係がアプリのパフォーマンスにどのように影響するかを開発者に知らせることもできます。
設定の最適化
どのPHPアプリケーションでも、最初に行うことは、アプリケーションに適用可能な設定やその他の環境を設定することです。 アプリケーションのパフォーマンスを向上させ、コードを最適化する非常に多くの機能を追加できるかもしれませんが、PHPランタイム環境の適切な構成 構成の最適化により、アプリケーションのパフォーマンスを最適化し、アプリケーションシステムストレージの信頼性と費用対効果を確保することもで アプリケーションの設定を変更すると、一部のPHPアプリケーションが機能しなくなることがあります。 特定の設定を変更するという考えを理解している必要がありますが、何かを無効にするときは、環境でテストを実行して変更をフォローアップする必
分散コンピューティング
分散コンピューティングは、並列実行の可能性を高めるために実践されています。 この手法は、データベースシステムで最も可能性の高い共有リソースの負荷を増加させる可能性があります。 ほとんどのwebアプリケーションには、遅延と帯域幅の分散に関して問題や問題がありますが、分散コンピューティングは遅延を最小限に抑え、ボトルネッ このようにして、分散コンピューティングは、分散キャッシュからシステムに非常に有益です。 キャッシュのヒントは、以下の次のトピックになります。
キャッシュ戦略
良いキャッシュ戦略は、データベース操作とコードコンパイルの数を減らすことができます。 多くの場合、データベースの負荷を下げるためにMemcacheを使用し、オペコードキャッシュとコード最適化のための代替PHPキャッシュ(APC)を使用することが賢明です。 私たちがPHPオペコードでキャッシュについて話すとき、多くのオプションがあります。 これらにはAPCが含まれています(これは無料です!およびZend Platformを使用することができます。 Stackifyは最初にWindows Azure Managed Cacheを使用しますが、いくつかの苦情が寄せられています。 そのため、StackifyはAzureでサポートされているRedisを試してみることにしました。 Redisは、Windows Azureマネージキャッシュではなく、はるかに推奨されます。 私の最善のアドバイスは、適切にあなたのニーズに最適なスイートと最良の結果を提供するかを確認するために、各キャッシュ戦略を評価す
負荷分散
webアプリケーションでは、負荷分散はアプリケーションとはあまり関係がありませんが、ホスティングとインフラストラクチャに多くの影響 PHPでは、負荷分散は、ランダム、ラウンドロビン、およびユーザーのフィルタなどの様々な技術を使用してプラグインで設定されています。 サーバーの割り当てに関しては、いくつかの優先順位付けを行うこともできます。 あなたが常に心に留めておくべき唯一のことは、セッションオブジェクトはローカルマシンのメモリに格納されるので避けるべきであるというこ このようにして、データの同期は、バックアップ中または実際のデータ処理中に誤解を招く可能性があります。
セッションオブジェクトを避ける以外に、画像のようなファイルをサーバーに保存するべきではありません。 それらをクラウドに配置する方が良いでしょう。 最後に、同じ構成のサーバーがある場合は、一部のサーバーがハードウェア構成で他のサーバーよりも優れていることを常に念頭に置いてください。
ほとんどの場合、負荷分散の主な問題は、データベースとバックアップリカバリを処理するときです。 Stackifyでは、クラウド、Azureを最適化するため、負荷分散はあまり問題になりません。 クラウドは、必要に応じて適切に構成され、準備ができ、スケーリングされた災害復旧環境を提供します。
クライアント側を避ける
すべてのwebアプリケーションで、ページのリダイレクトが非常に多い場合、ページ速度が大幅に低下する可能性があります。 あなたは常にチェックして削除するか、あなたのページのリダイレクトを軽減することをお勧めします。 一方、ユーザーをページのSSLバージョンにリダイレクトすることはまったく機能しません。
セキュリティ(HTTP/2over SSL)
ハイパーテキスト転送プロトコルは、TCP/IP層で動作するアプリケーションプロトコルです。 HTTPは、サーバーとクライアントの間の接続を確立する責任があります。 また、webページまたはブラウザでユーザーの要求を処理する責任があります。 一方、Secure Socket Layer(SSL)は、HTTPのセキュリティで保護されたバージョンです。 Webサーバーとクライアント間の通信のほとんどは、SSLによって暗号化されています。
今日の技術では、私たちのブラウザのほとんどはすでにHTTP/2をサポートしています。 ブラウザはHTTP/2をサポートしていますが、実際にはサーバー側に制限があります。
SQL
データベースは、webアプリケーションの最も基本的な要素の一つです。 SQL databaseでは、基本的なリソースがどのように適切に機能するかを常に理解する必要があります。 SQL Serverには、独自の動的管理ビュー(Dmv)が組み込まれています。 ほとんどのDvmは、クエリ統計、実行計画などに関するデータを提供します。 DVMsの良い点は、基本的なロールアップ統計を提供することは常に利用可能ですが、時間の経過とともに呼び出されるクエリを視覚化できないことです。
アプリケーションパフォーマンス管理(APM)ツールには、SQLクエリを追跡する機能があります。 Retraceは、SQL Serverを含む複数のデータベースプロバイダでSQL追跡クエリを提供します。 また、Retraceは、クエリが実行された回数と、それを呼び出しているトランザクションを示します。 Retraceを使用する最も関連性の高い利点は、アプリ全体、アプリごと、およびクエリごとに詳細なレポートがあることです。 アプリでクエリがどのように使用されているかについての詳細な取引を表示できます。 これは、SQL用のPHPパフォーマンスチューニングに関して最も重要な情報です。
Content delivery network(CDN)
Content delivery network(CDN)は、トラフィックの多いwebサイトやグローバルリーチのあるwebサイトの配信を高速化する最も効率的かつ効果的な方法の一つです。 多くの企業は、地理的なリーチを増やすために大規模なウェブサイトを処理するときにすでにCDNを使用しています。 この手法は、レイテンシを削減し、帯域幅の消費を削減し、アプリケーションを保護することができますが、システムを攻撃する可能性のあるスパマーや
エラー処理
エラー処理は、アプリケーション開発の最も重要な部分の1つです。 PHPには、エラーを処理するためのさまざまな手法と戦略が用意されています。 これにより、独自のエラー処理ルールを確立し、エラーを記録する方法を変更することができます。 これにより、ニーズに最も適したエラー報告を開発および改善することができます。
トラブルシューティングは開発中および開発後の頭痛の種であり、Stackifyは問題の解決策を設計しました。 Retraceの最も強力な機能はコードプロファイリングであり、ログを記録していなくてもエラーを追跡することができます。 それはあなたのコードに隠されたエラーを検出し、それはすぐにあなたの顧客のすべてが影響を受ける前に、電子メールやSMSを介して通知を提供します。 Retraceでのエラーの監視は、開発中だけでなく、本番環境でも制限され、新しいエラーとログが自動的に更新されます。
概要
市場には多くのパフォーマンス監視ツールがあります。 あなたの適用のあなたの必要性に合うために最もよい1つを選んで下さい。
Stackifyは、すべての開発者、システム管理者、さらにはデータベース管理者が常に役立つ多くのパッケージを提供します。 Stackify製品を使用すると、webアプリケーションの問題の根本的な原因を見つけるためのデータの監視、ログ記録、デバッグなどの詳細を簡単に行うことができ、生産性を向上させることができます。 あなたが試してみて、今私たちの無料トライアルを確認することができます。
詳細情報
これらの記事では、PHPアプリケーションに役立つPHPパフォーマンスチューニングに関する追加情報を提供しています。
- 18 すべてのレベルの開発者のためのPHPツール
- 早すぎる最適化がすべての悪の根源である理由
- Webパフォーマンス最適化: トップ3サーバー側とクライアント側のパフォーマンスのヒント
- Webアプリケーションパフォーマンステストの基礎
- 18APMの比較&アプリケーション監視ツール
- 著者について
- 最新記事
ジュリエット-メンデスについて
ジュリエット-メンデスは、コンピュータ情報科学科の教授であり、情報技術を専門とする博士課程の学生です。 彼女はCCNA、PHP、JAVA、モバイル開発、プロジェクト管理などのコンピュータプログラミングの背景を持っています。
- すべてのPHPエラーを表示する:基本&高度な使用法-2020年3月27日
- PHPパフォーマンス最適化ガイド-10月9, 2018
- 5 知っておくべきPHPパフォーマンステストツール-2018年9月26日
- Laravel Eloquent Tutorial With Examples-2018年9月24日
- 詳細なPHPトラーターを入手-8月20, 2018