ホームページ  >  記事  >  バックエンド開発  >  PHPのパフォーマンス最適化に関する理論的知識の説明

PHPのパフォーマンス最適化に関する理論的知識の説明

不言
不言転載
2019-02-12 13:53:192699ブラウズ

この記事の内容は、PHP のパフォーマンス最適化に関する理論的な知識を説明するものであり、一定の参考価値がありますので、困っている友人は参考にしていただければ幸いです。

どのような状況で PHP のパフォーマンスの問題が発生しますか?

1 PHP 構文の不適切な使用
2 苦手なことを PHP 言語で行う
3 PHP 言語を使用して接続されるサービスは強力ではありません
4 PHP 自体の欠点
5 私にも分からない問題

パフォーマンス問題の分析

PHP のパフォーマンス問題は、プロジェクト全体のパフォーマンス問題の 50% 未満を占めています

パフォーマンス最適化プロジェクト、PHP の最適化のみに限定しないでください

php 言語レベルのパフォーマンスの最適化
# #ご自身でダウンロードしてください)
ab は Apache が提供するストレステストソフトウェアです。テスト ソフトウェアは、Apache サーバーのインストール時に含まれます。 ######使い方?

./ab -n1000 -c100 http://www.baidu.com/
-n リクエスト数
-c 同時実行数

url ターゲット ストレス テスト アドレス

PHP ストレス テスト ツールの使用デモ 主に 1 秒あたりの可能な限り多くの同時実行に焦点を当てます

リクエストにかかる時間はできる限り少なくします

使用PHP 独自の機能をさらに活用

最適化: コードの作成量を減らし、PHP 独自の機能をより多く活用

#パフォーマンスの問題: 独自のコードは冗長で、可読性が低く、パフォーマンスが低い

パフォーマンスが非常に低いですか?

PHP コードはコンパイルされ、基礎となる言語に解析される必要があります。このプロセスはリクエストごとに処理されるため、コストがかかります。

良い方法:

PHP の組み込み変数/定数/関数をもっと使用する

PHP 自身の能力パフォーマンス テストのためのコードの準備

php コード実行プロセス

*.php ---スキャナ--->式 -----パーサー--->オペコード---実行--->出力

php 組み込み関数間のパフォーマンス テスト

最適化ポイント: php 組み込み関数のパフォーマンス上の利点と欠点

状況説明: 間にまだブロックがあります。 php 組み込み関数 緩やかな違い

良い提案: PHP 組み込み関数の時間計算量について詳しく学ぶ

PHP 組み込み関数とコード テスト間のパフォーマンス テスト

isset($arr[$i]); //平均50ms
array_key_exists($i,$arr);//平均85ms

PHP マジック関数を減らす 使用方法の説明

: PHP が提供するマジック関数のパフォーマンスは低いですなぜパフォーマンスが低いのですか? PHP プログラマの手間を省くために、PHP 言語は次のことを行いました。 #わかりました方法: PHP マジック関数の使用をできる限り避ける

PHP エラー抑制機能を無効にする

@実際のロジック

オペコードを追加するコードの開始前後 エラーを無視してください

php -dv|d.active=1 -dv|d.execute=0 at.php

確認したいだけで、実際には実行したくありません

PHP によるメモリと正規表現の合理的な使用

最適化ポイント: 合理的なメモリの使用

PHP にはメモリの再利用を保証するメカニズムがありますが、メモリの使用には注意してください

良い提案

未使用のメモリを時間内に解放するには、unset() を使用します (注: ログアウトが失敗した場合は unset() を使用します)

正規表現の使用はできるだけ少なくしてください

正規表現のバックトラッキング オーバーヘッドは次のとおりです。比較的大きい、良い提案: 文字列処理関数を使用して同じロジックを実装する

PHP - ループ内での操作を避ける

最適化ポイント:ループ内での操作は避けてください。

状況説明:

ループ内の計算式は繰り返し計算されます。

コード例:

<?php
$str = "hello world";
for($i=0;$i<strlen($str);$i++)
{
    //do something
}

PHP-Reduce計算中心のビジネス

PHP は集中的なコンピューティング シナリオには適していません

PHP の言語特性により、PHP は大量のデータの操作には適していません

PHP は適していますシナリオ向け

Web サーバーとバッキング サービスの接続、UI プレゼンテーションに適しています

PHP - 必ず引用符で囲まれた文字列をキー値として使用してください

PHP はキー値を引用符なしで扱います定数として使用するため、定数を見つけるコストが発生します。

引用符で囲まれた文字列をキー値として厳密に使用します。


#PHP に関する問題の分析と説明

PHP の周辺領域は何ですか?

Linux 動作環境 php ハードディスク (ファイル ストレージ) データベース (mysql など) キャッシュ ネットワーク

PHP 周辺機器の影響の分析PHP プログラムの場合

ファイル操作の削減

一般的な PHP シナリオのオーバーヘッド シーケンス:

ディスクの読み取りと書き込み、データベースの読み取りと書き込み、メモリの読み取りと書き込み、ネットワークの読み取りと書き込みデータ

メモリの読み取りと書き込みb07aef75aa3e5420deb1caf000505707 プロセス 1 ->プロセス 2 ->プロセス 3 -> プロセス 4->

バイパス ソリューション: x.php -> プロセス 1 ->プロセス 2 (同時) ->プロセス 3 (同時) ) -->プロセス 4->

以上がPHPのパフォーマンス最適化に関する理論的知識の説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcnblogs.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。