require_once并且
include_once都要求系统会记录本已被列入什么/需要的。每个
*_once呼叫都意味着检查该日志。因此,肯定
有一些 额外的工作要做,但足以损害整个应用程序的速度吗?
…我真的对此表示怀疑…除非您使用的是 真正的 旧硬件或经常这样做,否则 不可以 。
如果您 要 进行数千次 *** 作
*_once,则可以轻松地自己完成工作。对于简单的应用程序,只是确保你只包括一次 应该
足够了,但如果你仍然得到重新定义错误,你可以是这样的:
if (!defined('MyIncludeName')) { require('MyIncludeName'); define('MyIncludeName', 1);}
我个人会坚持这些
*_once说法,但在愚蠢的百万通过基准上,您会发现两者之间的区别:
php hhvmif defined 0.18587779998779 0.046600103378296require_once 1.2219581604004 3.2908599376678
慢10-100倍,
require_once奇怪的
require_once是
hhvm。同样,这仅在您运行
*_once数千次时才与您的代码相关。
<?php // test.php$LIMIT = 1000000;$start = microtime(true);for ($i=0; $i<$LIMIT; $i++) if (!defined('include.php')) { require('include.php'); define('include.php', 1); }$mid = microtime(true);for ($i=0; $i<$LIMIT; $i++) require_once('include.php');$end = microtime(true);printf("if definedt%snrequire_oncet%sn", $mid-$start, $end-$mid);
<?php // include.php// do nothing.
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)