言語に関係なく、コードの読みやすさとアプリケーションのパフォーマンスの両方を改善するために採用できる概念とテクニックがあります
ここでの最大の学習は次のとおりです。ホイールを再発明しようとしないでください。私がいつも言っているように:研究と研究。おそらく、誰かがすでにあなたと同じ問題に直面しており、効率的な解決策を見つけました。コミュニティによって蓄積された知識を利用すると、時間を節約するだけでなく、トラップや一般的なエラーを避けるのにも役立ちます
クエリとデータベースこのテーマについては、アプリケーションで非常に重要なこのテーマについては、私はすでに少し書きました、それは読む価値があります。 データの永続性とMySQLとアプリケーションの読み取りを最適化する
パフォーマンス最適化手法
データベースとデータベースに加えて、アプリケーションを最適化するための他の基本領域があります。いくつかを強調しましょう:
キャッシュ キャッシュの使用は、データベースの負荷を減らし、頻繁にアクセスされるデータを一時的に保存するために不可欠です。コミュニティは、この目的のためにアプリケーションの最大化-PHP を使用しています
Redisは、メモリが永続的でないため、メモリ内の非常にパフォーマンスが高いが揮発性のNOSQLデータベースです。次のようなケースに最適です
REAL -TIME消費データ
カートを購入
コード作成の最適化について話すときにいくつかの重要なポイント:
xdebug *
または単純な関数をMicroTime()として使用してテストすることが不可欠です。ループ内のデータ操作に注意し、ネイティブ操作:Array_mapなどのネイティブPHP関数の使用は、通常、カスタムソリューションを作成するよりも安全で効率的です。 「ホイールを再発明する必要はない」ことを忘れないでください。
ループ操作の最小化:ループ内でループを不必要に作成しないようにします。ネストされたフォレッチは、select *と同じくらい有害です。代わりに、ロジックの書き換えや、より効率的なクエリを使用して複雑さを減らすなどの代替ソリューションを検討します
:PSRプラクティスを順守することで、コードの読みやすさとメンテナンスが向上します。今日、IDESは、変更を節約することにより、これらの標準の適用を自動化する拡張機能を提供しています。これはコードの品質に役立つだけでなく、将来を維持する人にとっても生活を容易にします
キュー::
ユーザーが電子商取引で購入するとき、電子メールの確認を即座に送信する必要がありますか?多くの場合、いいえ。この場合、電子メールをキューに送信します。これは、リソースを節約し、スケーラビリティを確保します
サブプロセス:それは銀の弾丸ではありませんが、状況に応じて実装でき、それだけの価値があります
例
を含むと含まれています:クラスとファイルの読み込みを管理するために自動浸透液を使用することを好みます。これにより、パフォーマンスが向上するだけでなく、大規模で不必要なクラス(有名なメガゾード)の問題を回避します。たとえば、選択方法を使用するためだけにクラスを7,000行でロードすることは非常に非効率的です。これらの状況では、
を考慮することが重要です
最初に知っておく必要があるのは、PHPが非常に軽い言語であることです。通常の温度と圧力条件下で、リクエストの量に適したマシンと、コードの適切な最適化により、すべてがうまく機能する傾向があります
「マシュー、リクエストの量に対応するマシンは何ですか?」
私はすでに、平均して2つのVCPUと2 GBのRAMを備えた2つのマシンを使用して、1日あたり600万以上のリクエストを受け取った複雑なアプリケーションの実装と最適化に参加しています。
さて、ツールについて話します:
php-fpm
これは、Apache PHPモジュールに代わるPHPのFastCGIプロセスマネージャーです。 PHP-FPMはより速く、柔軟性があり、生産に広く使用されています
PHPスクリプト用のキャッシュシステム。事前にコンパイルされたPHPコードをメモリに保存し、PHPがより速く実行できるようにし、実行時間とリソースの消費を削減します
重要なケア:
手動のPHPログ検索から自動化されたソリューションまで、監視にはいくつかのアプローチがあります。自動化されたツールの中で、際立っています:
新しい宗教
これらのツールは「プラグアンドプレイ」として知られています。エージェントをインストールし、サービスを再起動し、メトリックとアラートを作成します
一方、チームのより大きな努力と知識を必要としますが、コンテキストに依存する価値があるかもしれないより多くの手動オプションがあります。 これらのハンドツールを使用する際の課題は、特に専用のサポートチームのない堅牢なアプリケーションで、彼らが追加する複雑さです。これらのソリューションには、多くの構成、厳密なテストが必要であり、エージェントがパフォーマンスに悪影響を与えるのを防ぐために注意してください。さらに、フェイルオーバーのレイヤーと層が必要です。冗長性マシンだけでは十分ではありません。
ほとんどの場合、New Relicのようなツールは素晴らしい出発点を提供し、災害を防ぐための優れた能力を提供します。ただし、使用に応じて重要になる可能性があるコストに注意することが重要です
以上がアプリケーションの最大化-PHPの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。