wget https://github.com/facebook/xhprof/archive/master.zip unzip master.zip cd xhprof-master/extension/ phpize ./configure make sudo make install
[xhprof] extension=xhprof.so
sudo apt-get update sudo apt-get install graphviz
$xhprof_runs_impl = new XHProfRuns_Default( );
$xhprof_runs_impl = new XHProfRuns_Default( dirname(dirname(__FILE__)).'/reports');
<?php print '<pre>'; ini_set('display_errors', 1); $modx->setLogLevel(3); $namespace = 'modxsite'; // Инициализируем профайлер - будем считать и процессорное время и потребление памяти xhprof_enable(XHPROF_FLAGS_CPU + XHPROF_FLAGS_MEMORY); if(!$response = $modx->runProcessor('web/getdata', array( ), array( 'processors_path' => $modx->getObject('modNamespace', $namespace)->getCorePath().'processors/', ))){ print "Не удалось выполнить процессор"; return; } print_r($response->getResponse()); // Останавливаем профайлер $xhprof_data = xhprof_disable(); // Сохраняем отчет и генерируем ссылку для его просмотра include_once MODX_BASE_PATH."assets/components/xhprof/xhprof_lib/utils/xhprof_lib.php"; include_once MODX_BASE_PATH."assets/components/xhprof/xhprof_lib/utils/xhprof_runs.php"; $xhprof_runs = new XHProfRuns_Default(MODX_BASE_PATH."assets/components/xhprof/reports"); $run_id = $xhprof_runs->save_run($xhprof_data, "console"); echo "Report: assets/components/xhprof/xhprof_html/index.php?run=$run_id&source=console";
switch($modx->event->name){ case 'OnInitCulture': // Инициализируем профайлер - будем считать и процессорное время и потребление памяти xhprof_enable(XHPROF_FLAGS_CPU + XHPROF_FLAGS_MEMORY); break; case 'OnWebPagePrerender': // Останавливаем профайлер $xhprof_data = xhprof_disable(); // Сохраняем отчет и генерируем ссылку для его просмотра include_once MODX_BASE_PATH."assets/components/xhprof/xhprof_lib/utils/xhprof_lib.php"; include_once MODX_BASE_PATH."assets/components/xhprof/xhprof_lib/utils/xhprof_runs.php"; $xhprof_runs = new XHProfRuns_Default(MODX_BASE_PATH."assets/components/xhprof/reports"); $run_id = $xhprof_runs->save_run($xhprof_data, "full_site"); $modx->log(xPDO::LOG_LEVEL_ERROR,"Report: assets/components/xhprof/xhprof_html/index.php?run=$run_id&source=full_site",'xhprof'); break; }
Под php7 надо чуть поменять начало гайда Создаем папку assets/components cd assets/components wget https://github.com/rustjson/xhprof/archive/refs/heads/php7.zip unzip php7.zip rm php7.zip cd xhprof-php7/extension/ phpize ./configure --with-php-config=/$PHP7/bin/php-config make && make install