2010-12-01 4 views
12

可能な重複が含ま:私はPHPでinclude_oncerequire_once文は、その非かつて対応よりも遅かったことをどこかで読んだ
Why is require_once so bad to use?PHPのinclude_once(スピード)対

を。これは大きな減速ですか?これに関するテストや調査が行われていて、最近のPHPのバージョンで変更されていますか?

+2

質問を繰り返す - http://stackoverflow.com/questions/186338/why-is-require-once-so-bad-to-use – ajreal

+1

なぜダウン率ですか? – Cybrix

答えて

14

コードの重複を防ぐために、速度の向上は最小限に抑えられ、参照チェックが行われます。 'once' appendageは、同じコードが2回実行されていることを防止するための予防措置です。このチェックを実行するのは、スピードがあまりありません。

_onceを使用しているインスタンスが存在する場合は、そのケースが本当に最も効率的な方法で構築されていますか? _onceに頼る必要性を排除し、より良いコードを生成する方が良い場合がよくあります(簡単に言われています!)。

参照:

http://forums.digitalpoint.com/showthread.php?t=1693837

http://www.phpbb.com/community/viewtopic.php?f=71&t=565933

http://www.sitepoint.com/forums/showthread.php?t=269085

http://www.quora.com/What-is-the-difference-between-functions-include-and-include_once-in-PHP

3

のinclude_onceとrequire_onceを関数が含まれ、それらはファイルを追跡するという理由だけで、必要よりも遅いですすでにハチミツそれらを2回以上含めることを避けるために、nが含まれています。

しかし、これはアプリケーション全体を最適化する方法がたくさんあるので、この点よりも効率的です。

+1

明確にするために、 'include_once'と' require_once'関数はスクリプトが*正確に*実行されたときだけ遅くなります。特定のスクリプト 'foo.php'が' include'を介してインクルードされている場合、そのスクリプトは毎回実行されます。 'include_once'を介してインクルードされている場合は、実行されたかどうかを確認するための最小速度コストがありますが、最初の実行ではなくスクリプトが実行されません。 – jvriesem

関連する問題