Инструменты пользователя

Инструменты сайта


limb3:ru:packages:profile

Пакет PROFILE

Пакет предназначен для профайлинга приложений написанных с использованием Limb. Основные функции, предоставляемые пакетом:

  • автопрофайлинг запросов к БД и кэшам, с последующим выводом в различных формах
  • утилиты для «ручного» профайлинга отдельных участков ваших приложений

Автопрофайлинг запросов

Автопрофайлинг умеет собирать информацию о запросах в БД (тест, время, stack trace), запросах к кешам (ключ, время, stack trace) и информацию о окружении (содержимое _SERVER, _ENV и т.д.). Поддерживаются несколько методов вывода информации о запросе:

  • «панель» - отображается вверху страницы, и представляет из себя панель с выпадающими секциями
  • «таблица» - отображается внизу страницы, как список таблиц-секций
  • «лог» - not implemented yet

Настройка

Файл profile.conf.php:

$conf['enabled'] = true;
$conf['profile_reporter'] = 'lmbProfilePanelReporter'; //переключение методов вывода (lmbProfilePanelReporter - панель, lmbProfileTableReporter - таблица)

Интеграция

Для включения автопрофайлинга в вашем приложении необходимо включить фильтр lmbProfileReportingFilter (он находится в файле limb/profile/src/filter/lmbProfileReportingFilter.class.php) в начало вашего приложения.

Если вы используете lmbWebApplication в качестве базового класса приложения, то интеграция может выглядеть так:

lmb_require('limb/web_app/src/lmbWebApplication.class.php');
 
class MyApplication extends lmbWebApplication
{
  function __construct()
  {
    $this->addPreActionFilter(new lmbHandle('limb/profile/src/filter/lmbProfileReportingFilter.class.php'));
  }
}

Если же вы построили свое приложение «с нуля», то

lmb_require('limb/filter_chain/src/lmbFilterChain.class.php');
lmb_require('limb/core/src/lmbHandle.class.php');
 
class LimbApplication extends lmbFilterChain
{
  function __construct()
  {
    $this->registerFilter(new lmbHandle('limb/web_app/src/filter/lmbUncaughtExceptionHandlingFilter'));
    //Обратите внимание, что фильтр расположен после lmbUncaughtExceptionHandlingFilter. Это необходимо для того, чтобы отлавливать ошибки, возникающие в работе самого lmbProfileReportingFilter (ошибки в настройке БД, кэшей, etc).
    $this->registerFilter(new lmbHandle('limb/profile/src/filter/lmbProfileReportingFilter.class.php'));
 
...

"Ручной" профайлинг

FIXME см. limb/profile/tests/cases/toolkit/lmbProfileUtilsToolsTest.class.php

Обсуждение

Ваш комментарий. Вики-синтаксис разрешён:
  ____    ___    _  __   __ __ ______
 / __ \  / _ \  | |/_/  / // //_  __/
/ /_/ / / , _/ _>  <   / _  /  / /   
\___\_\/_/|_| /_/|_|  /_//_/  /_/
 
limb3/ru/packages/profile.txt · Последние изменения: 2010/11/10 10:02 (внешнее изменение)