パフォーマンスを含めます

  コードのコードをコピーして、次のとおりです.

  含める」(含ま.PHP「);

  もちろん、これは間違った方法ではありませんが、次のようにその効率比がやや悪化しています.

  コードのコードをコピーして、次のとおりです.

  (のrealpath(dirnameは(_FILE_))が含ま.DIRECTORY_SEPARATOR.「インクルード.PHP「);

  このように、我々はいくつかのより多く入力する必要がありますが、名前を見つけるために、すべての反復でのPHPのinclude_pathを必要と前回のエンジンと比較して「を含むことがあり.対応するオブジェクトをされて見つけるためにPHPの、のdirname(__ FILE__)この絶対パスは、システムが迅速に適切なファイルを見つけることができるように指定されています.

  実際には、PHPでのC#の定数__FILE__のAppDomainで.CurrentDomain.BaseDirectory非常に類似し、それは現在のコードを実行しているコードを含むファイルの絶対パスを返します.関数dirnameが()親フォルダのパスを返します..

  より効率的かつ簡単な方法は、書き込みにあるさらに見つけるのhttps「(含める:// WWW.jb51.ネット/記事/含めます.PHP含める「と同等です)、現在のパスを見つけるために、システムに通知します」.PHPのファイル.

  大規模なシステムでは、私たちはしばしば、我々は多くの場合、以下のコードファイルや他のルーティング初期化ファイルを追加し、別のより良い方法を使用します.

  コードのコードをコピーして、次のとおりです.

  ( ''APP_PATH'' のrealpath(DIRNAME(_FILE_を)))を定義します.

  これは、システムに相当し、我々は次のコードを使用することができ、パス内の特定のファイルを参照する必要がある場合、システムのルートディレクトリこと、背中を示すためにグローバル変数を追加します.

  コードのコードをコピーして、次のとおりです.

  (APP_PATHを含めます.DIRECTORY_SEPARATOR.「モデル」.''ユーザー.PHP「);

  AUTOLOADと性能比較を含めます

  たとえば、以下の4つのスクリプト:

  コードのコードをコピーして、次のとおりです.

  #FILE:include1.PHP

  「include2を含めます.PHP「;

  // @ TODO何か#ファイル:include2.PHP

  // @ TODO何か#ファイル:SCRIPT1.PHP

  「include2を含めます.PHP「;

  // @ todoの何か

  #FILE:スクリプト2.PHP

  「include1を含めます.PHP「;

  「SCRIPT1を含めます.PHPの

  // @ todoの何か

  SCRIPT1を実行する場合.PHP、などが「include2.PHP「;このコード行を一度に実行されます.実行スクリプト2.PHP、このコード行が2回実行された場合.

  ここでinclude2、実際のプロジェクトでは、単純な例であります.PHPは数が多いですが含ま.このような、それがパフォーマンスに影響するかどうか、などが繰り返されます?この目的を達成するために私がテストにスクリプトを書きました.

  コードのコードをコピーして、次のとおりです.

  #FILE:SimpleClass.PHP

  クラスSimpleClass {

  パブリック関数__construct(){

  エコーGET_TIME() . 「RN」.

  }

  }

  #FILE:PHP_include.PHP

  $のI;($ I = 0のために < $loop;$i++) {

  include_once「SimpleClass.PHP「;

  新しいSimpleClass();

  }

  $ループが1の場合、スクリプトが0程度かかり.00018906593322754秒、$ループ1000年、スクリプトが0程度かかり.076701879501343秒.

  私たちが達成した場合には、AUTOLOAD?

  コードのコードをコピーして、次のとおりです.

  #FILE:php_autoload.php

  関数__autoload($ CLASS_NAME){

  include_once $ CLASS_NAME . ".PHP「;

  }($ i = 0; $のI < $loop;$i++) {

  新しいSimpleClass();

  }

  $ループが1のとき、このコードでは、私は時間がかかり、ほとんど同じスクリプト、__autoload関数を定義0.0002131462097168秒、ループは$ 1000と、上記のコードはわずか1 / 7,0かかります.012391805648804秒.

  しかし、それは何の結果だろう文字列の行を出力SimpleClassコード、見て、その後、比較出力する場合は、この行を削除してください.?

  1000年と$ループの場合、前者は0を消費します.057836055755615秒後、自動ロードを使用した、唯一の0.00199294090271秒!約30倍の効率差!

  それは上記の試験から分かるように、ファイルが一度だけ含まれる場合に、自動ロードを少しより多くの時間を消費しますが、ファイルが繰り返しオートロードを使用することを含む場合が大きく、システムのパフォーマンスを向上させることができる場合.

  あなたは、プログラマを解放するために自動ロードを使用するかどうかをどの見る人の目に、賢明な参照知恵.私の意見では、より便利に開発する(いくつかのケースでは、可能性もパフォーマンスを向上させる)、この犠牲パフォーマンスを可能にする条件下で、それは価値があります.

  ()と()のパフォーマンスを必要とします

  )(含めるには、()内のファイルが読み込まれ、評価されるたびに実行される類;

  )(必要の場合は、ファイルは一度だけ処理される(実際には、ファイルの内容を置き換える必要()文).

  あなたが持っている場合は、この手段これらのいずれかのコードが含まれており、命令は、コードを複数回実行することが、使用は、より効率的な)(必要.

  一方、読み出しファイルの異なる位相は、各タイムコードを実行するとき、または反復ループによってファイルのセットを有し、使用(含みます)、

  彼らはあなたがパラメータが含まれている場合、この変数を使用して、変数セットを含めたいファイル名を与えることができるので().

  あなたはまた、記事に興味がある可能性があり:ランダムデータクエリのMySQLの比較4つの方法や方法の3種類の性能特性は、ランダム関数mt_rand PHPのページ要素()とランドはJavaScriptのJavascriptのcreateElementの配列を比較してコントラスト性能のinnerHTMLの増加をコピーするには()の性能比較分析ノード.PHP +のリストまたはセットは、通常のクエリのパフォーマンスを準備MYSQLかどうJSとPHP、文字処理性能比較PHP、Pythonが(in_arrayで使用)foreachの性能ルックアップアレイ(array_searchを含む)の性能の比較Pythonの決意値の比較golang、パイソン、PHP、C ++、C、Javaの、Nodejs性能比較を説明するための比較例

()説明性能比較inlcude PHPで

Recommend Article: