• Модуль: main
  • Путь к файлу: ~/bitrix/modules/main/classes/general/site_checker.php
  • Класс: CSiteCheckerTest
  • Вызов: CSiteCheckerTest::check_perf
function check_perf()
{
	$arTime = array();
	$count = 3;
	for($i=0; $i<$count; $i++)
	{
		if (!$res = $this->ConnectToHost())
			return false;

		if (IsModuleInstalled('security'))
		{
			$file = COption::GetOptionString("security", "ipcheck_disable_file", "");
			COption::SetOptionString("security", "ipcheck_disable_file", $this->LogFile);
		}
		$strRequest = "GET "."/bitrix/admin/site_checker.php?test_type=perf&unique_id=".checker_get_unique_id()."&i=".$i." HTTP/1.1rn";
		$strRequest.= "Host: ".$this->host."rn";
		$strRequest.= "rn";

		$strRes = GetHttpResponse($res, $strRequest, $strHeaders);

		if (IsModuleInstalled('security'))
			COption::SetOptionString("security", "ipcheck_disable_file", $file);


		if (!is_numeric($strRes))
		{
			PrintHTTP($strRequest, $strHeaders, $strRes);
			return $this->Result(false, GetMessage('SC_TEST_FAIL'));
		}

		$arTime[] = doubleval($strRes);
	}

	$r = doubleval($count) / array_sum($arTime);
	if ($r < 10)
		$strResult = GetMessage("MAIN_PERF_VERY_LOW");
	elseif ($r < 15)
		$strResult = GetMessage("MAIN_PERF_LOW");
	elseif ($r < 30)
		$strResult = GetMessage("MAIN_PERF_MID");
	else
		$strResult = GetMessage("MAIN_PERF_HIGH");
	return $this->Result($r >= 10, $strResult.' ('.number_format($r , 2, ".", " ").' '.GetMessage("MAIN_PAGES_PER_SECOND").')');
}