- Модуль: perfmon
- Путь к файлу: ~/bitrix/modules/perfmon/classes/general/measure.php
- Класс: CPerfomanceMeasure
- Вызов: CPerfomanceMeasure::GetPHPFilesMark
static function GetPHPFilesMark()
{
$res = [];
$file_name = $_SERVER["DOCUMENT_ROOT"] . "/" . BitrixMainConfigOption::get("main", "upload_dir", "/upload/") . "/perfmon#i#.php";
$content = "$s='".str_repeat("x", 1024)."';?>/*".str_repeat("y", 1024)."*/?>$r='".str_repeat("z", 1024)."';?>";
for ($j = 0; $j < 4; $j++)
{
$s1 = microtime(true);
for ($i = 0; $i < 100; $i++)
{
$fn = str_replace("#i#", $i, $file_name);
}
$e1 = microtime(true);
$N1 = $e1 - $s1;
$s2 = microtime(true);
for ($i = 0; $i < 100; $i++)
{
//This is one op
$fn = str_replace("#i#", $i, $file_name);
$fh = fopen($fn, "wb");
fwrite($fh, $content);
fclose($fh);
include($fn);
unlink($fn);
}
$e2 = microtime(true);
$N2 = $e2 - $s2;
if ($N2 > $N1)
{
$res[] = 100 / ($N2 - $N1);
}
}
if (count($res))
{
return array_sum($res) / doubleval(count($res));
}
return 0;
}