啟動(dòng) xhprof 性能分析器(在官方基礎(chǔ)上完善)

xhprof_enable — 啟動(dòng) xhprof

說(shuō)明

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

flags 該參數(shù)用于為結(jié)果添加額外的配置,如果需要提供多個(gè)值,使用|進(jìn)行分隔。

XHPROFFLAGSNO_BUILTINS 跳過(guò)所有的內(nèi)置函數(shù)
XHPROFFLAGSCPU 添加對(duì)CPU使用的分析
XHPROFFLAGSMEMORY 添加對(duì)內(nèi)存使用的分析

options 是數(shù)組,在此處提供ignored_functions選項(xiàng)需要忽略的函數(shù)、如果覺(jué)得抽象不好理解看最下面的實(shí)例。

xhprof_enable底層c實(shí)現(xiàn)源碼:
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);

//分析開(kāi)始,替換 zend_execute, zend_execute_internal 等函數(shù)
}

范例

Example #1 xhprof_enable() 范例

`<?php
//同時(shí)開(kāi)啟cpu和內(nèi)存統(tǒng)計(jì)的模式,注意:由于開(kāi)啟cpu 統(tǒng)計(jì)會(huì)占用更高的資源,所以應(yīng)更具不同公司的不用情況而適當(dāng)開(kāi)啟。
xhprof_enable(XHPROF_FLAGS_MEMORY|XHPROF_FLAGS_CPU);

//同時(shí)開(kāi)啟cpu、內(nèi)存、并且忽略php內(nèi)置函數(shù)統(tǒng)計(jì),一般內(nèi)置函數(shù)效率比較高,為了節(jié)省性能可以開(kāi)啟忽略統(tǒng)計(jì)。
xhprof_enable(XHPROF_FLAGS_NO_BUILTINS | XHPROF_FLAGS_CPU | XHPROF_FLAGS_MEMORY);

//同時(shí)對(duì)內(nèi)存和CPU進(jìn)行分析,并且忽略對(duì)call_user_func和call_user_func_array函數(shù)的分析
xhprof_enable(
XHPROF_FLAGS_MEMORY|XHPROF_FLAGS_CPU,
[
'ignored_functions' => [
'call_user_func',
'call_user_func_array'
]
]
);

上面只是舉例了一部分情況,具體可以根據(jù)不同公司的情況靈活開(kāi)啟。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容