thinkphp

thinkPHP中的一个函数require_cache的性能问题研究

thinkPHP中有个require_cache函数包装了require,显示地实现了@require_once的功能,注释中标榜为“优化的require_once”,然而实际情况如何,我做了个很简单的功能测试,for循环1000000次分别测试require_cache和require_once的性能

require_once: 2.009112, 2.099082, 2.075355
require_cache:23.285378, 23.309440, 23.334591
require_test:2.745165, 2.731406, 2.859381
require_test2:23.386466, 23.116133, 23.034672

结果很明显了,是由于每次的realpath调用严重增加了IO开销导致的性能急剧下降,而其他因素如函数调用、静态变量使用等对性能影响相对于IO开销都可以忽略不计,毕竟是在内存发生的,顺带一提,测试环境是win7+APMServ+ThinkPHP2.0

当然,对于实际应用来说,由于不会有如此大数量的require发生,所以十倍的性能差距基本可以无视,但ThinkPHP的这个函数仍然摆脱不了画蛇添足的嫌疑

下面:附录1&2,require_cache代码以及测试用代码
[......]

继续阅读

Tags: , ,

星期五, 七月 23rd, 2010 WebDev, 技术 没有评论

Page optimized by WP Minify WordPress Plugin

みくみくにしてあげる♪
初音