ホームページ >バックエンド開発 >PHPチュートリアル >PHP パフォーマンスの最適化 - PHP 言語レベルのパフォーマンスの最適化 - PHP チュートリアル

PHP パフォーマンスの最適化 - PHP 言語レベルのパフォーマンスの最適化 - PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:12:05911ブラウズ

phpパフォーマンスの最適化php言語レベルのパフォーマンスの最適化1


この問題については、まず PHP のパフォーマンスに影響を与える理由を知る必要があります。それは

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

1php構文の不正使用(PHP独自の関数で処理できる一部業務を含む)

2 苦手なことをPHP言語で行う

3php言語を使用して接続されているサーバーは強力ではありません(もちろん、localhostの場合、ローカル設定は比較的貧弱なので、変更することをお勧めします(笑))

4php自体の欠点(PHP自体はできない)

5私たちにもわからない問題(囧)

2 PHP パフォーマンス問題の概要 - PHP パフォーマンス問題の解決策

最も難しいものから最も難しいものまで:

1 Php 言語レベルのパフォーマンスの最適化

2 Php周辺問題(mysql nginx|apacheなど)のパフォーマンスの最適化

3 PHP 言語の上級分析と最適化 (PS は主に基礎となる C コードを指します)


以下は、PHP 言語レベルのパフォーマンスの最適化に関する説明の例であり、タイトルで述べた内容のテストです。次に、2 つのファイル bad.php、goods.php を記述する必要があります。

テストしたいのは2つの配列を結合する操作です(テストツール apache ab test)

bad.php

アイデア:

まず配列 1 をターゲット配列に 1 つずつ追加します

その後、配列 2 を走査し、配列 2 の要素が配列 1 に出現するかどうかを比較します。出現しない場合は、それらをターゲット配列に挿入し、そうでない場合は無視します

りー



goods.php

アイデア:

順序をシャッフルして 2 つの配列をランダムに生成します

その後、array_mergeを使用してマージします

りー



3 ab を使用して、2 つの PHP スクリプトの速度をテストします: (追記: 素晴らしい瞬間が始まります)

悪い.php


goods.php

vcD4KPHA+PGltZyBzcmM9"http://www.2cto.com/uploadfile/Collfiles/20141205/20141205084010231.png" alt="PHP パフォーマンスの最適化 - PHP 言語レベルのパフォーマンスの最適化 - PHP チュートリアル" target="_blank" class="keylink">


これら 2 つのテストでは、違いが少しも違うことがはっきりとわかります。 bad.php を実行すると、明らかにコンピューターのファンが吹いているのを感じました。

bad.php は 1 秒あたり 174 のリクエストに応答し、リクエストあたり 572 ミリ秒で処理します

goods.php は 1 秒あたり 4050 のリクエストに応答し、リクエストごとに 24 ミリ秒を処理します

追記: まだ不適切な文章を使用している場合は、できるだけ早く変更し、上司に気づかれないように注意してください。


4 その理由

この結果には私も驚きましたが、それについて私たちにできることは何もありません。では、なぜこれほどの影響があるのか​​を調べてみましょう。

*.php (php コード) -----スキャナー (zend エンジンが zend が認識できる構文を 1 行ずつスキャンします) ----> expr

-----parser(オペコードへの解析)-----> オペコード ------exec(最終出力の実行)------> 出力


zend を実行するにはまず PHP ファイルをスキャンし、出力を実行する前にオペコードに解析する必要があることがわかります。PHP 独自の関数を使用する場合、実際には zend の解析が必要になります。速度は良い(goods.php)と呼ばれますが、bad.phpを実行すると、他の人が書いたコードを読むのは自分が書いたコードを読むほど速くないため、その通りです。なので、ホイールは自分で作らずにオリジナルのものを使用する方が良いです。


もう少し言うと、これが、多くの Php 拡張機能 (apc など) がオペコードをキャッシュするようになった理由です。これにより、スキャンと解析の必要がなくなり、確実に高速化されるからです。


5 概要

最適化ポイント: 記述するコードを減らし、PHP 自体が提供する機能をより多く使用します

パフォーマンスの問題:

私が書いたコードは冗長で読みにくく、パフォーマンスも低いです

パフォーマンスが低いのはなぜですか?

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

良い方法:

より多くの PHP 組み込み変数、定数、関数を使用します (spl は便利な関数を提供します)


www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/925221.html技術記事 PHP パフォーマンスの最適化 - PHP 言語レベルのパフォーマンスの最適化 - この問題については、まず、PHP のパフォーマンスに影響を与える理由を知る必要があります。それは 1. PHP のパフォーマンスの問題はどのような状況で発生しますか? ...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。