magento优化-性能-程序运行时间监测

在网站的优化过程中,通常需要查看程序的运行时间,mangento为我们提供了查看的方法。

这里用到的magento核心类是Varien_Profiler

用Varien_Profiler来监测程序运行时间的使用方法如下:

Varien_Profiler::start('self::app::init');  
self::$_app->init($code, $type, $options);//初始化APP
Varien_Profiler::stop('self::app::init');

start和stop函数的参数是监测这段程序的名字,名字可以随便起,只要保证全局唯一就ok了


这样在程序中写上代码后,监测的结果并不能直接显示,要显示结果需要有两个条件:

1、修改seystem/config/developer/调试/配置器  为true


2、在index.php中去掉下面这段程序的注释

Varien_Profiler::enable();//启用Varien_Profiler


当上面这些都配置好后,刷新网页会在网页的底部显示如下的一个表格:

magento优化-性能-程序运行时间监测_第1张图片



这样的表格是如何显示出来的呢,这里用到一个Block类/app/code/core/Mage/Core/Block/Profiler.php

class Mage_Core_Block_Profiler extends Mage_Core_Block_Abstract
{
    protected function _toHtml()
    {
        if (!$this->_beforeToHtml()
            || !Mage::getStoreConfig('dev/debug/profiler')
            || !Mage::helper('core')->isDevAllowed()) {
            return '';
        }

        $timers = Varien_Profiler::getTimers();

        #$out = '
'; #$out = '
'; $out = "[profiler]"; $out .= '
'; $out .= '
Memory usage: real: '.memory_get_usage(true).', emalloc: '.memory_get_usage().'
'; $out .= ''; $out .= ''; foreach ($timers as $name=>$timer) { $sum = Varien_Profiler::fetch($name,'sum'); $count = Varien_Profiler::fetch($name,'count'); $realmem = Varien_Profiler::fetch($name,'realmem'); $emalloc = Varien_Profiler::fetch($name,'emalloc'); if ($sum<.0010 && $count<10 && $emalloc<10000) { continue; } $out .= '' .'' .'' .'' .'' .'' .'' ; } $out .= '
Code ProfilerTimeCntEmallocRealMem
'.$name.''.number_format($sum,4).''.$count.''.number_format($emalloc).''.number_format($realmem).'
'; $out .= '
';
        $out .= print_r(Varien_Profiler::getSqlProfiler(Mage::getSingleton('core/resource')->getConnection('core_write')), 1);
        $out .= '
'; $out .= '
'; return $out; } }


你可能感兴趣的:(magento)