Composer はクラスの自動ロードに複数のオプションを提供します: PSR-0/ 4 つの標準または直接クラスマップ スキャン。ドキュメントでは PSR-4 を推奨しているにもかかわらず、ユーザーはクラスマップの方が読み込み速度が速いと主張しています。これにより、次のような疑問が生じます。クラスマップの方が優れているように見えるのに、なぜ PSR-4 を使用するのでしょうか?
PSR-4 の自動読み込みでは、ディレクトリ構造を利用して名前空間をマップします。ファイルの場所。一方、クラスマップは、すべてのクラス名とそれに対応するファイル パスをリストする静的配列を作成します。
一般に信じられていることに反して、クラスマップは普遍的に PSR-4 より高速であるわけではありません。ファイルシステムのチェックは不要になりますが、メモリのオーバーヘッドが発生します。クラスマップに含まれる各クラス、インターフェイス、特性は、使用されていない場合でもメモリを消費します。
PSR-4 のパフォーマンスを最適化するには、長い特定の名前空間プレフィックスを使用します。オートロード宣言。これにより、オートローダーがチェックする必要があるディレクトリの数が減ります。
ソリューションを採用する前に、実際のパフォーマンスの向上を測定することが重要です。クラスマップが高速であると盲目的に仮定すると、非効率につながる可能性があります。特定のシナリオでは、PSR-4 は、メモリ オーバーヘッドの問題により最速ではありませんが、最適なソリューションになる可能性があります。
PSR-4 とクラスマップの自動ロードのどちらを選択するかは、特定のアプリケーションによって異なります。要件。クラスマップは場合によっては読み込みを高速化できますが、メモリ オーバーヘッドが発生します。 PSR-4 は、名前空間プレフィックスの最適化に応じて、可変速度で最適化された読み込みを提供します。最適な自動読み込み戦略を決定するには、パフォーマンス テストとデータ分析が不可欠です。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3