php 性能分析工具 xhprof

php 安装 xhprof 扩展 (兼容php5、7)

git clone git@github.com:longxinH/xhprof.git
cd xhprof 
/usr/local/php7/bin/phpize 
./configure --with-php-config=/usr/local/php7/bin/php-config 
make 
sudo make install

扩展编译完成,确定一下

ls /usr/local/php7/lib/php/extensions/no-debug-non-zts-20180731/xhprof.so

把 prepend 文件放在 /tmp/xhprof.prepend.php 下

vi /usr/local/php7/lib/php.ini

[xhprof]
extension=xhprof.so
auto_prepend_file ="/tmp/xhprof.prepend.php";

重启 apache

ps: prepend 文件 xhprof.prepend.php

<?php
xhprof_sample_enable();
define('XHPROF_START_TIME', microtime(true));

register_shutdown_function(function () {
    $xhprof_time = microtime(true) - XHPROF_START_TIME;
    $xhprof_data = xhprof_sample_disable();
    if ($xhprof_time > 2 && !empty($xhprof_data)) {
        array_unshift($xhprof_data, http_build_query($_REQUEST));
        $xhprof_file = '/tmp/xhprof/' . date('YmdHis0000') . uniqid() . '.'
            . str_replace('.', '_', strtolower((isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : 'NOHOST')
            . '-' . (isset($_SERVER['REQUEST_METHOD']) ? $_SERVER['REQUEST_METHOD'] : 'NOMETHOD')))
            . '.xhprof';
        file_put_contents($xhprof_file, serialize($xhprof_data));
    }
});
发表新评论