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() 范例
`<?php
//同时开启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'
]
]
);
上面只是举例了一部分情况,具体可以根据不同公司的情况灵活开启。
网友评论