- Модуль: perfmon
- Путь к файлу: ~/bitrix/modules/perfmon/classes/general/keeper.php
- Класс: CPerfomanceKeeper
- Вызов: CPerfomanceKeeper::SetPageTimes
static function SetPageTimes($START_EXEC_CURRENT_TIME, &$arFields)
{
list($usec, $sec) = explode(" ", $START_EXEC_CURRENT_TIME);
$CURRENT_TIME = (float)$sec + (float)$usec;
if (defined("START_EXEC_PROLOG_BEFORE_1"))
{
$PROLOG_BEFORE_1 = (float)START_EXEC_PROLOG_BEFORE_1;
if (defined("START_EXEC_AGENTS_1") && defined("START_EXEC_AGENTS_2"))
{
$AGENTS_2 = (float)START_EXEC_AGENTS_2;
$AGENTS_1 = (float)START_EXEC_AGENTS_1;
$arFields["~AGENTS_TIME"] = $AGENTS_2 - $AGENTS_1;
}
else
{
$arFields["~AGENTS_TIME"] = 0;
}
if (defined("START_EXEC_EVENTS_1") && defined("START_EXEC_EVENTS_2"))
{
list($usec, $sec) = explode(" ", START_EXEC_EVENTS_2);
$EVENTS_2 = (float)$sec + (float)$usec;
list($usec, $sec) = explode(" ", START_EXEC_EVENTS_1);
$EVENTS_1 = (float)$sec + (float)$usec;
$arFields["~EVENTS_TIME"] = $EVENTS_2 - $EVENTS_1;
}
else
{
$arFields["~EVENTS_TIME"] = 0;
}
if (defined("START_EXEC_PROLOG_AFTER_1") && defined("START_EXEC_PROLOG_AFTER_2"))
{
$PROLOG_AFTER_1 = (float)START_EXEC_PROLOG_AFTER_1;
$PROLOG_AFTER_2 = (float)START_EXEC_PROLOG_AFTER_2;
$arFields["~PROLOG_AFTER_TIME"] = $PROLOG_AFTER_2 - $PROLOG_AFTER_1;
$arFields["~PROLOG_BEFORE_TIME"] = $PROLOG_AFTER_1 - $PROLOG_BEFORE_1;
$arFields["~PROLOG_TIME"] = round($PROLOG_AFTER_2 - $PROLOG_BEFORE_1 - $arFields["~AGENTS_TIME"], 4);
if (defined("START_EXEC_EPILOG_BEFORE_1"))
{
$EPILOG_BEFORE_1 = (float)START_EXEC_EPILOG_BEFORE_1;
$arFields["~WORK_AREA_TIME"] = $EPILOG_BEFORE_1 - $PROLOG_AFTER_2;
if (defined("START_EXEC_EPILOG_AFTER_1"))
{
$EPILOG_AFTER_1 = (float)START_EXEC_EPILOG_AFTER_1;
$arFields["~EPILOG_BEFORE_TIME"] = $EPILOG_AFTER_1 - $EPILOG_BEFORE_1;
$arFields["~EPILOG_AFTER_TIME"] = $CURRENT_TIME - $EPILOG_AFTER_1 - $arFields["~EVENTS_TIME"];
}
else
{
$arFields["~EPILOG_BEFORE_TIME"] = 0;
$arFields["~EPILOG_AFTER_TIME"] = 0;
}
$arFields["~EPILOG_TIME"] = $CURRENT_TIME - $EPILOG_BEFORE_1;
}
else
{
$arFields["~WORK_AREA_TIME"] = $CURRENT_TIME - $PROLOG_AFTER_2;
$arFields["~EPILOG_BEFORE_TIME"] = 0;
$arFields["~EPILOG_AFTER_TIME"] = 0;
$arFields["~EPILOG_TIME"] = 0;
}
}
$arFields["~PAGE_TIME"] = $CURRENT_TIME - $PROLOG_BEFORE_1;
}
else
{
$arFields["~PAGE_TIME"] = $CURRENT_TIME - START_EXEC_TIME;
}
}