启动 xhprof 性能分析器(在官方基础上完善)

xhprof_enable — 启动 xhprof

说明

void xhprof_enable ([ int $flags = 0 [, array $options ]] )

flags 该参数用于为结果添加额外的配置,如果需要提供多个值,使用|进行分隔。

XHPROFFLAGSNO_BUILTINS 跳过所有的内置函数
XHPROFFLAGSCPU 添加对CPU使用的分析
XHPROFFLAGSMEMORY 添加对内存使用的分析

options 是数组,在此处提供ignored_functions选项需要忽略的函数、如果觉得抽象不好理解看最下面的实例。

xhprof_enable底层c实现源码:
PHP_FUNCTION(xhprof_enable)
{
long xhprof_flags = 0; /* XHProf flags */
zval optional_array = NULL; / optional array arg: for future use */

if (zend_parse_parameters(ZEND_NUM_ARGS(), "|lz", &xhprof_flags, &optional_array) == FAILURE) {
    return;
}

hp_get_ignored_functions_from_arg(optional_array);

hp_begin(XHPROF_MODE_HIERARCHICAL, xhprof_flags);

//分析开始,替换 zend_execute, zend_execute_internal 等函数
}

范例

Example #1 xhprof_enable() 范例

` //同时开启cpu和内存统计的模式,注意:由于开启cpu 统计会占用更高的资源,所以应更具不同公司的不用情况而适当开启。
xhprof_enable(XHPROF_FLAGS_MEMORY|XHPROF_FLAGS_CPU);

//同时开启cpu、内存、并且忽略php内置函数统计,一般内置函数效率比较高,为了节省性能可以开启忽略统计。
xhprof_enable(XHPROF_FLAGS_NO_BUILTINS | XHPROF_FLAGS_CPU | XHPROF_FLAGS_MEMORY);

//同时对内存和CPU进行分析,并且忽略对call_user_func和call_user_func_array函数的分析
xhprof_enable(
XHPROF_FLAGS_MEMORY|XHPROF_FLAGS_CPU,
[
'ignored_functions' => [
'call_user_func',
'call_user_func_array'
]
]
);

上面只是举例了一部分情况,具体可以根据不同公司的情况灵活开启。

你可能感兴趣的:(启动 xhprof 性能分析器(在官方基础上完善))