Конечно, доступен инструмент Db Profiling, он называется Zend_Db_Profiler, и вы можете узнать, как его использовать, прочитав официальную документацию здесь: http://framework.zend.com/manual/en/zend.db.profiler.html#zend.db.profiler.using
По сути, вы должны сделать что-то вроде этого:
$db = Zend_Db_Table::getDefaultAdapter();
$profiler = $db->getProfiler();
$totalTime = $profiler->getTotalElapsedSecs();
$queryCount = $profiler->getTotalNumQueries();
Что касается общего времени загрузки вашей страницы, если вы не используете макеты, лучше создать базовый класс контроллера, который получает текущее (микро) время в течение predispatch и postDispatch.методы, то вы делаете его базовым классом для всех ваших контроллеров.Возможно, что-то подобное может сделать эту работу:
class Myapp_Controller_Action extends Zend_Controller_Action
{
protected $_startTime;
protected $_endTime;
protected $_totalTime;
public function preDispatch()
{
parent::preDispatch();
$this->_startTime = microtime(true);
}
public function postDispatch()
{
parent::postDispatch();
$this->_endTime = microtime(true);
$this->_totalTime = $this->_endTime - $this->_startTime;
// do something with $this->_totalTime;
}
}
И каждый контроллер в вашем приложении должен расширять Myapp_Controller_Action вместо Zend_Controller_Action:
class IndexController extends Myapp_Controller_Action
{
...
}