XHPROF相关内容
定义入口文件
define('XHPROF_OPEN', 0); define('XHPROF_ROOT', '/home/www/xhprof/'); // 开启调试模式 建议开发阶段开启 部署阶段注释或者设为false define('APP_DEBUG',true); // 定义应用目录 define('APP_PATH','../app/'); define('LOG_PATH',APP_PATH.'Runtime/Logs/'); if(defined('XHPROF_OPEN') && XHPROF_OPEN) { require ('./xhprof.php'); }
加载xhprof.php
<?php if (!defined('XHPROF_OPEN')) define('XHPROF_OPEN', 0); class Xhprof { private static $st = 0; /** * [start description] * @return [type] [description] */ public static function start() { if (!function_exists('xhprof_enable')) { exit("xhprof_enable not exists!"); } if (!is_dir(XHPROF_ROOT)) { exit(XHPROF_ROOT . " not exists!"); } //xhprof_enable(XHPROF_FLAGS_CPU + XHPROF_FLAGS_MEMORY); xhprof_enable(XHPROF_FLAGS_NO_BUILTINS |XHPROF_FLAGS_CPU | XHPROF_FLAGS_MEMORY); self::$st = microtime(true); register_shutdown_function(array(__CLASS__, 'end')); //php进程关闭时自动执行的方法 } /** * [end description] * @return [type] [description] */ public static function end() { $et = microtime(true); $data = xhprof_disable(); include_once XHPROF_ROOT."xhprof_lib/utils/xhprof_lib.php"; include_once XHPROF_ROOT."xhprof_lib/utils/xhprof_runs.php"; $runs = new XHProfRuns_Default(); $runId = $runs->save_run($data, "hx"); $log = XHPROF_ROOT . 'xhprof_html/logs/'.date('YmdHis').'.html'; $cost = $et - self::$st; $host = $_SERVER['HTTP_HOST']; $title = $_SERVER['REQUEST_URI']; $content = 'Time: '.date('H:i:s')."\tCost: {$cost}\t\tUri({$host}): <a href='/index.php?run={$runId}&source=hx' target='_blank'>{$title}</a><br/>"; file_put_contents($log, $content, FILE_APPEND); } } if(XHPROF_OPEN) Xhprof::start();
XHPROF_OPEN 调试为1就可用
作者:Wicub
免责声明:文章、笔记等仅供分享、探讨、参考等学习之用,因此造成的任何后果概不负责。(如有错误、疏忽等问题,欢迎指正、讨论,谢谢)
本文版权归作者和博客园共有,欢迎转载,但请务必在文章页面明显位置给出原文连接,谢谢配合。