経験の浅いPHP質問:
PHPスクリプトファイルがあり、さまざまなページのさまざまな場所に何度も含める必要があります。
含まれているファイルをいくつかの小さなファイルに分割し、必要に応じてこれらを含めるオプションがあります... OR ...すべてを1つにまとめることができますPHPファイル。
このコンテキストでinclude()に大きいファイルと小さいファイルを使用することによるパフォーマンスへの影響があるかどうか疑問に思っていますか?たとえば、200KBのファイルと20KBのファイルの間にパフォーマンスの違いはありますか?
ありがとうございました。
200KBと20KBのファイルには違いがあります...しかし、おそらく気付かないでしょう。200KBのファイルはそれほど大きくはありません。通常、「小さくない」ファイルをたくさん使用します。大きなアプリケーションを構築しています。
.php
ファイルをロードする場合、時間がかかることが2つあります。
補足として:一般的な状況では、SQLクエリを最適化したり、キャッシュメカニズムを追加したりすることで、そのようなことを考えるよりもはるかに多くの時間/ CPU /リソースを得ることができます。
include_once()
(およびrequire_once()
)には注意してください。実行には、include()
よりもコストがかかります。 include_once()
が実行されるたびに、PHPは、ファイルをロードするかどうかを決定する前に、すでに含まれているファイルの内部インデックスを検索します。インデックスに含まれるものが多いほど、このルックアップは遅くなります。また、include()
またはinclude_once()
を使用する場合は、強制しないため相対パスよりもはるかに高速であるため、可能な場合は絶対パスを使用するようにしてくださいPHP絶対パスを計算するために、ggirouxが言ったように、APCのような何らかの形式のキャッシングは、莫大な報酬を獲得し、(ほとんど)無関係なインクルード呼び出しの数を心配します(コードの記述が不十分な場合を除く) 。
編集-
上記の呼び出しについて心配することは、コードベースに数千のrequires
またはincludes
が含まれ始めたときにのみ問題になります。
確かに影響があるので、include()の代わりにinclude_once()を使用してください。インクルードキャッシュを備えたAPCの使用を検討することもできます。