2012-02-27 4 views
0

ちょっと疑問...それは?どのくらい使用しない.phpファイルを読み込むと、パフォーマンスに影響しますか?

20個の.phpファイルをクラスに入れておきますが、実際にクラスを使用することはありません(使用することもできます)。

+1

あなたのシステムと大きさに応じて、少しのパフォーマンスが必要になることがあります。どのくらいの費用がかかりますか?あなたは[autoloading](http://php.net/manual/en/language.oop5.autoload.php)を使って要求に応じてファイルをロードすることができます –

+0

これはローダーでデザインパターンが存在する理由です(インクルード)とメモリ(インクルードファイルの内容) –

答えて

2

私はこれまでわずかなバリエーションの回答が得られます:些細な金額:あなたが調整されたVPSや専用サーバーで実行されている場合は

  • 共有ホスティングサービスで実行している場合、スクリプト実行時間のパフォーマンスが著しく低下する可能性があります。

なぜですか?最初のケースではAPCやXcacheなどのPHPオペコードキャッシュを設定する必要があります。実際にはスクリプトの読み込みやコンパイルのオーバーヘッドを排除できます。ファイルの読み込みや統計チェックが必要な場合でも、(仮想)サーバーがアプリケーション専用の場合は、メタデータとファイルデータが「ホット」になり、ファイルシステムのキャッシュに大部分がキャッシュされます。

共有サービスでは、すべてが逆方向に実行されています。PHPは、ユーザーUIDでリクエストごとのイメージとして実行されます。オペコードキャッシングソリューションはこのモードをサポートしていないので、すべてをコンパイルする必要があります。ここでは、ファイルを読み込む必要があり、多くの(おそらくほとんどの)共有LAMPホスティングプロバイダは、LAMP層にスケーラブルなサーバーファームを使用し、共有NFSマウントNASインフラストラクチャのユーザーデータを使用します。これらのNFSマウントではacreminが1分未満であるため、I/O要求にはRPCオフサーバが必要です。私のブログ記事では、ベンチマークhereを挙げています。共有IISホスティングテンプレートの詳細は異なりますが、ネットエフェクトは似ています。

私は共有サービスでphpBBフォーラムパッケージを実行し、私はhereのようにソースの共通セットを集約して、応答時間を約半分にしました。

2

はい、どれだけ多くのものに依存しますが、 PHPアクセラレータを使用している場合、パフォーマンスコストはあまり高くありませんが、そうでない場合は大幅に遅くなります。あなたの最善の策は、一般的にオートローディングを使用することです。そのため、場合によってはすべてをロードするのではなく、実際に使用する時点でのみロードします。それはあなたのメモリ消費量を減らすかもしれません。

2

もちろん、パフォーマンスに影響します。 PHPで行うことはすべて行います。

どの程度のデータがその中にあるのか、それらの実行にどれくらいの時間がかかりますか、それともクラスの場合は読み込みますか。

あなたがそれらを使用していない場合、なぜそれらを含むのですか?私はいくつかのメインエンジンファイル、またはヘッダーファイルを使用していると仮定し、ファイルを含める方法を考え直す必要があります。

EDIT: @Pekkaが指摘するように、クラスを自動読み込みすることができます。

関連する問題