Rop*_*tah 1 php doctrine lazy-loading
我懒得在我的网站上加载我的Doctrine课程.基准测试表明Doctrine::loadModels('models')
完成需要100多毫秒!我总共有118张桌子,但还是......
将属性设置为保守加载:
Doctrine_Manager::getInstance()->setAttribute(Doctrine::ATTR_MODEL_LOADING, Doctrine::MODEL_LOADING_CONSERVATIVE);
Run Code Online (Sandbox Code Playgroud)
运行基准测试部分:
$CI->benchmark->mark('Doctrineload_start');
Doctrine::loadModels(APPPATH.'models');
$CI->benchmark->mark('Doctrineload_end');
Run Code Online (Sandbox Code Playgroud)
结果如下:
Doctrineload 0.1085 (seconds)
Run Code Online (Sandbox Code Playgroud)
这是'正常'吗?
"语境":
Loading Time Base Classes 0.0233
Doctrineinit 0.0435 //doctrine_pi.php file, doctrine configuration + db account
Doctrineload 0.1085
Masterpageset 0.0001
Userload 0.1208 //1 db query
Masterpageaddcontent 0.1565 //1 db query, loading view with some <?=?> php parsing
Masterpageshow 0.0203 //loading view
Controller Execution Time ( Home / Index ) 0.3591
Total Execution Time 0.3826
Run Code Online (Sandbox Code Playgroud)
您使用的是像APC或xcache这样的操作码缓存系统吗?如果没有,你应该考虑安装一个.当使用像Doctrine这样的大型框架和库时,你会看到一个显着的改进.PHP会在每个请求重新编译生成响应所需的所有文件时花费大量时间.使用操作码缓存可以大大减少这种开销.
APC最终将被包含在PHP中,如果它的维护者是Rasmus Lerdorf本人,那么它似乎是一个非常受欢迎的系统.请参阅:http://pecl.php.net/package/APC
XCache是由lighttpd的创建者编写的,它似乎是一个非常可行的选择,虽然我有一段时间没有使用它.请参阅:http://xcache.lighttpd.net/
归档时间: |
|
查看次数: |
816 次 |
最近记录: |