本文若转载需注明来源地址,实验结果仅表明在指定环境下的真实数据,不具统一参考性。
之前看过一些文章,大致说的是require比require_once快,笔者呢一直使用require_once,因为这样可以保证项目最大容错。至于速度方面呢,一直想做一个对比,今天就来测试一下。
测试环境:PHP 5.6/FASTCGI/IIS8.5
测试站点:一个数据量大的站点和一个少量数据的站点(均使用UT框架)
实验目的:分析require与require_once的执行速度和CPU使用率
第一部分:执行速度对比
网站 | require执行速度 | require_once执行速度 |
多数据网站 |
最短642.37毫秒 最长840.21毫秒 |
最短628.25毫秒 最长761.80毫秒 |
少数据网站 |
最短544.12毫秒 最长697.18毫秒 |
最短569.55毫秒 最长714.72毫秒 |
第二部分:CPU使用率对比
网站 | require CPU使用率 | require_once CPU使用率 |
多数据网站 |
1~2~4 记录到3次 |
1~2~3 记录到3次 |
少数据网站 | 1~2~5~6 记录到4次 | 1~2~4~5 记录到4次 |
结论:
对执行速度而言,当项目小、数据少时require执行速度略优于require_once,但当遇到结构复杂的项目、数据量大时require_once运行似乎更加稳定。
对资源耗损而言,require与require_once没有太大区别,对记录到的使用率进行对比,我们发现require的CPU使用率略高于require_once。
但可以肯定的是,在本次设定的实验环境中,require与require_once二者在执行速率和CPU使用率上并无明显差异,我们可以根据项目需要而选用。