ホームページ バックエンド開発 PHPチュートリアル PHPの実行速度を改善する方法

PHPの実行速度を改善する方法

Mar 21, 2018 am 10:08 AM
php 方法 スピード

この記事では主に PHP の実行速度を向上させる方法を紹介します。全部で 50 以上ありますので、皆さんのお役に立てれば幸いです。

1。クラスメソッドをstaticとして定義できる場合は、staticとして定義してみると、その速度はほぼ4倍向上します。
2, $row[’id’] の速度は、$row[id]7 倍です。
3 ) 代わりに、echo$str1,$str2などの文字列連結。 4for
ループを実行する前に最大ループ数を決定します。ループごとに最大値を計算するのではなく、代わりにforeach を使用することをお勧めします。 5。未使用の変数、特に大きな配列の登録を解除して、メモリを解放します。
6__get
__set
__autoload
の使用を避けるようにしてください。 7
require_once()は高価です。 8ファイルが含まれている場合は、絶対パスを使用するようにしてください。これにより、PHP
がファイルを見つけるためにinclude_pathにアクセスする速度と、ファイルの解析に必要な時間が回避されるためです。オペレーティング システムのパスが少なくなります。
9
、スクリプトの実行が開始される瞬間を知りたい場合(アノテーション: つまり、サーバーがクライアントリクエストを受信します)を使用するには、$_SERVER['REQUEST_TIME ']
time()
よりも優れています。 10、関数は正規表現を置き換えて同じ関数を完成させます。 11
str_replace
関数は preg_replace 関数よりも高速ですが、strtr
関数の効率は str_replace の効率です。
関数
4回。 12。文字列置換関数がパラメータとして配列または文字を受け入れ、パラメータの長さが長すぎない場合は、渡される各パラメータが 1 文字になるように追加の置換コードを記述することを検討できます。 1 行のコードを記述する クエリと置換のパラメータとして配列を受け入れます。 13では、選択分岐ステートメント(翻訳: switch case)を使用する方が、複数の

if
else if

ステートメントを使用するよりも優れています。
14@を使用してエラーメッセージをブロックするのは非常に非効率的です。 15apache mod_deflate モジュールを開きます。これにより、Web ページの閲覧速度が向上します。
16。データベース接続は、使用が終了したら閉じる必要があります。長い接続は使用しないでください。
17、エラーメッセージは高価です。
18。メソッド内のローカル変数を増やすのが最も速いです。関数内でローカル変数を呼び出すのとほぼ同じ速度です。
19、グローバル変数のインクリメントは、ローカル変数のインクリメントより 2 倍遅くなります。
20、オブジェクト プロパティのインクリメント ($this->prop++ など) は、ローカル変数のインクリメントより 3 倍遅くなります。
21
、未定義のローカル変数のインクリメントは、事前定義されたローカル変数のインクリメントよりも9 から10 倍遅くなります。
22
。関数内で呼び出さずにローカル変数だけを定義すると(ローカル変数を1つ増やすのと同じです)
PHP おそらくグローバル変数が存在するかどうかを確認します。 23
、メソッド呼び出しは、クラスで定義されているメソッドの数とは何の関係もないようです。なぜなら、
(メソッドをテストする前と後の両方)追加10 メソッドを追加したからです。ですが、性能に変化はありません。
24、派生クラスのメソッドは、基本クラスで定義された同じメソッドよりも高速に実行されます。
25。1 つのパラメーターを指定して空の関数を呼び出すには、
7
から 8 回のローカル変数インクリメント操作 を実行するのと同等の時間がかかります。同様のメソッド呼び出しには、15 のローカル変数のインクリメント操作が必要です。
26
Apache
PHP スクリプトの解析は、静的なHTML ページ2 を解析するよりも時間がかかります10回。 可能な限り静的な HTML ページを使用し、スクリプトを減らします。 27
スクリプトをキャッシュできない限り、呼び出されるたびに再コンパイルされます。一連のPHP
キャッシュメカニズム
を導入すると、コンパイルのオーバーヘッドを回避するために、通常、パフォーマンスを25%から100%
に向上させることができます。
28、できるだけキャッシュするようにしてください。memcached
を使用できます。
memcached は、動的 Web アプリケーションを高速化し、データベースの負荷を軽減するために使用できる高性能のメモリ内オブジェクト キャッシュ システム です。オペコード(OP code)
のキャッシュは、リクエストごとにスクリプトを再コンパイルする必要がないように
便利です。 29、文字列を操作し、その長さが特定の要件を満たしているかどうかを確認する必要がある場合は、当然 strlen()
を使用します。
関数。この関数は計算を行わず、zval 構造体 (PHP
変数を保存するための C の組み込みデータ構造) の値を返すだけなので、非常に高速に実行されます。 に保存されている既知の文字列の長さ。ただし、strlen()は関数であるため、関数呼び出しは小文字
(
注釈:関数名の小文字を指します)など多くの手順を経るため、
は多少遅くなります。
PHP関数名は大文字と小文字が区別されません)、ハッシュ検索は呼び出された関数と一緒に実行されます。場合によっては、
isset()
トリックを使用してコードの実行を高速化できます。 isset()の呼び出しは、たまたまstrlen()よりも高速です。これは、が言語構造としての
isset()
の実行が関数の検索を必要としないことを意味するという点で後者とは異なるためです。 の文字が小さい文字で書かれています。つまり、実際には、最上位コードで文字列の長さをチェックするオーバーヘッドはそれほどかかりません。

34
、変数$i のインクリメントまたはデクリメントを実行すると、$i++++$i よりも遅くなります。 この違いは PHP 特有のであり、他の言語には当てはまりません。そのため、C
Java コードを変更して、即座に 高速になることを期待しないでください。それは無駄です。 ++$i
3 命令(オペコード) のみを必要とするため高速ですが、$i++4 命令を必要とします。 Postfix increment は実際には、後でインクリメントされる一時変数を作成します。プレフィックスの増分は、元の値に直接増加します。これは最適化の一種で、Zend

PHP オプティマイザーが行うのと同じです。 すべてのコマンド オプティマイザーが同じ最適化を行うわけではなく、コマンド オプティマイザーがインストールされていないインターネット サービス プロバイダー (ISP) も多数あるため、この最適化
を念頭に置くことをお勧めします。そしてサーバー。

35
、すべてがオブジェクト指向である必要があるわけではありません(OOP)
、オブジェクト指向は多くの場合非常に高価であり、各メソッドとオブジェクトの呼び出しは大量のメモリを消費します。 36 すべてのデータ構造を実装するためにクラスを使用する必要はありません。
37
。本当に再利用するコードを慎重に検討してください。必要な場合はいつでもコードをメソッドに分割できます。 39
、多数の PHP 組み込み関数を使用してみてください。
40
。コード内に多くの時間のかかる関数がある場合は、
C 拡張機能を使用して実装することを検討できます。 41
、コードを評価して検査してください
(プロフィール)。チェッカーは、コードのどの部分にどれくらいの時間がかかっているかを示します。 Xdebug
デバッガーには検査手順が含まれており、評価検査によりコード全体のボトルネックを示すことができます。
42mod_zip Apache モジュールとして使用すると、データを瞬時に圧縮し、データ転送量を
80%削減できます。
43filefopenfeof、の代わりにfile_get_contentsを使用できますsのような一連の方法の場合
file_get_contents の量を使用するようにしてください。その方が効率的です ! ただし、URL
ファイルを開くときは、
file_get_contents に注意してくださいPHP ;
44
PHP のファイル操作効率は低くありませんが、 Update
操作を実行します。 ;46 PHPを使用してください内部関数(しかし、私はPHPを見つけたいだけです
それは関数内に存在せず、カスタム関数を書くために使用できたはずの
時間を無駄にしています。経験の問題です!);47。ループ内で変数、特に大きな変数を宣言しないでください: オブジェクト(これは機能しないようです。で注意すべき点です。 PHP
?);48
、多次元配列でネストされた代入をループしないようにしてください;49PHP 内部文字を使用できます 文字列操作関数の場合、正規表現
を使用しないでください。50
foreach
の方が効率的です。
while および for ループの代わりに
foreach を使用してみてください。 ;单、二重引用符番号の参照文字列を単一引用符番号に置き換えます。c/c++ 習慣は依然として効率的です";53グローバル 変数の場合、それらは unset() である必要があります。
使用後は取り外します。
関連する推奨事項:
PHP の実行速度を向上させるためのヒントPHP の実行速度を向上させる方法PHP の実行速度を向上させる方法

以上がPHPの実行速度を改善する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Dec 24, 2024 pm 04:42 PM

PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

今まで知らなかったことを後悔している 7 つの PHP 関数 今まで知らなかったことを後悔している 7 つの PHP 関数 Nov 13, 2024 am 09:42 AM

あなたが経験豊富な PHP 開発者であれば、すでにそこにいて、すでにそれを行っていると感じているかもしれません。あなたは、運用を達成するために、かなりの数のアプリケーションを開発し、数百万行のコードをデバッグし、大量のスクリプトを微調整してきました。

PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 Dec 20, 2024 am 11:31 AM

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、

JSON Web Tokens(JWT)とPHP APIでのユースケースを説明してください。 JSON Web Tokens(JWT)とPHP APIでのユースケースを説明してください。 Apr 05, 2025 am 12:04 AM

JWTは、JSONに基づくオープン標準であり、主にアイデンティティ認証と情報交換のために、当事者間で情報を安全に送信するために使用されます。 1。JWTは、ヘッダー、ペイロード、署名の3つの部分で構成されています。 2。JWTの実用的な原則には、JWTの生成、JWTの検証、ペイロードの解析という3つのステップが含まれます。 3. PHPでの認証にJWTを使用する場合、JWTを生成および検証でき、ユーザーの役割と許可情報を高度な使用に含めることができます。 4.一般的なエラーには、署名検証障害、トークンの有効期限、およびペイロードが大きくなります。デバッグスキルには、デバッグツールの使用とロギングが含まれます。 5.パフォーマンスの最適化とベストプラクティスには、適切な署名アルゴリズムの使用、有効期間を合理的に設定することが含まれます。

PHPでHTML/XMLを解析および処理するにはどうすればよいですか? PHPでHTML/XMLを解析および処理するにはどうすればよいですか? Feb 07, 2025 am 11:57 AM

このチュートリアルでは、PHPを使用してXMLドキュメントを効率的に処理する方法を示しています。 XML(拡張可能なマークアップ言語)は、人間の読みやすさとマシン解析の両方に合わせて設計された多用途のテキストベースのマークアップ言語です。一般的にデータストレージに使用されます

母音を文字列にカウントするPHPプログラム 母音を文字列にカウントするPHPプログラム Feb 07, 2025 pm 12:12 PM

文字列は、文字、数字、シンボルを含む一連の文字です。このチュートリアルでは、さまざまな方法を使用してPHPの特定の文字列内の母音の数を計算する方法を学びます。英語の母音は、a、e、i、o、u、そしてそれらは大文字または小文字である可能性があります。 母音とは何ですか? 母音は、特定の発音を表すアルファベットのある文字です。大文字と小文字など、英語には5つの母音があります。 a、e、i、o、u 例1 入力:string = "tutorialspoint" 出力:6 説明する 文字列「TutorialSpoint」の母音は、u、o、i、a、o、iです。合計で6元があります

PHPでの後期静的結合を説明します(静的::)。 PHPでの後期静的結合を説明します(静的::)。 Apr 03, 2025 am 12:04 AM

静的結合(静的::) PHPで後期静的結合(LSB)を実装し、クラスを定義するのではなく、静的コンテキストで呼び出しクラスを参照できるようにします。 1)解析プロセスは実行時に実行されます。2)継承関係のコールクラスを検索します。3)パフォーマンスオーバーヘッドをもたらす可能性があります。

PHPマジックメソッド(__construct、__destruct、__call、__get、__setなど)とは何ですか? PHPマジックメソッド(__construct、__destruct、__call、__get、__setなど)とは何ですか? Apr 03, 2025 am 12:03 AM

PHPの魔法の方法は何ですか? PHPの魔法の方法には次のものが含まれます。1。\ _ \ _コンストラクト、オブジェクトの初期化に使用されます。 2。\ _ \ _リソースのクリーンアップに使用される破壊。 3。\ _ \ _呼び出し、存在しないメソッド呼び出しを処理します。 4。\ _ \ _ get、dynamic属性アクセスを実装します。 5。\ _ \ _セット、動的属性設定を実装します。これらの方法は、特定の状況で自動的に呼び出され、コードの柔軟性と効率を向上させます。

See all articles