2014-12-04 47 views
2

是否可以在调用页面/ url之后的一段时间后激活xhprof?仅在缓慢页面中激活Xhprof

通常情况下,我的页面在1秒内响应。有时他们会在10秒内回复(不,这不是档案中的会话)。我想在请求开始1秒后激活xhprof。 (现在可以失去第一个分析)

如果是javascript,我们有setTimeout,但是PHP没有线程化。

任何想法?

回答

1

你可以使用这样的东西。 xhprofon.php:

function my_xhprof_disable() 
{ 
    $xhprof_data = xhprof_disable(); 

    if(defined('MY_DEBUG_START') && (microtime(true) - MY_DEBUG_START) > 1) 
    { 
     $XHPROF_ROOT = "/src/to/xprof/"; 
     include_once $XHPROF_ROOT . "/xhprof_lib/utils/xhprof_lib.php"; 
     include_once $XHPROF_ROOT . "/xhprof_lib/utils/xhprof_runs.php"; 
     $xhprof_runs = new XHProfRuns_Default(); 
     $run_id = $xhprof_runs->save_run($xhprof_data, "mysitename"); 
    } 
} 

define('MY_DEBUG_START', microtime(true)); 
xhprof_enable(XHPROF_FLAGS_CPU + XHPROF_FLAGS_MEMORY); 

register_shutdown_function('my_xhprof_disable'); 

然后使用auto_prepend_file在所有页面上包含此文件。