AutorÃa | Ultima modificación | Ver Log |
<?php// Copyright (c) 2009 Facebook//// Licensed under the Apache License, Version 2.0 (the "License");// you may not use this file except in compliance with the License.// You may obtain a copy of the License at//// http://www.apache.org/licenses/LICENSE-2.0//// Unless required by applicable law or agreed to in writing, software// distributed under the License is distributed on an "AS IS" BASIS,// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.// See the License for the specific language governing permissions and// limitations under the License.////// XHProf: A Hierarchical Profiler for PHP//// XHProf has two components://// * This module is the UI/reporting component, used// for viewing results of XHProf runs from a browser.//// * Data collection component: This is implemented// as a PHP extension (XHProf).//////// @author(s) Kannan Muthukkaruppan// Changhao Jiang//// Start moodle modification: moodleize this script.require_once(dirname(dirname(dirname(dirname(__FILE__)))).'/config.php');require_once($CFG->libdir . '/xhprof/xhprof_moodle.php');require_login();require_capability('moodle/site:config', context_system::instance());raise_memory_limit(MEMORY_HUGE);\core\session\manager::write_close();// End moodle modification.// by default assume that xhprof_html & xhprof_lib directories// are at the same level.$GLOBALS['XHPROF_LIB_ROOT'] = dirname(__FILE__) . '/../xhprof_lib';require_once $GLOBALS['XHPROF_LIB_ROOT'].'/display/xhprof.php';// param name, its type, and default value$params = array('run' => array(XHPROF_STRING_PARAM, ''),'wts' => array(XHPROF_STRING_PARAM, ''),'symbol' => array(XHPROF_STRING_PARAM, ''),'sort' => array(XHPROF_STRING_PARAM, 'wt'), // wall time'run1' => array(XHPROF_STRING_PARAM, ''),'run2' => array(XHPROF_STRING_PARAM, ''),'source' => array(XHPROF_STRING_PARAM, 'xhprof'),'all' => array(XHPROF_UINT_PARAM, 0),);// pull values of these params, and create named globals for each paramxhprof_param_init($params);/* reset params to be a array of variable names to valuesby the end of this page, param should only contain values that needto be preserved for the next page. unset all unwanted keys in $params.*/foreach ($params as $k => $v) {$params[$k] = $$k;// unset key from params that are using default values. So URLs aren't// ridiculously long.if ($params[$k] == $v[1]) {unset($params[$k]);}}echo "<html>";echo "<head><title>XHProf: Hierarchical Profiler Report</title>";xhprof_include_js_css();echo "</head>";echo "<body>";$vbar = ' class="vbar"';$vwbar = ' class="vwbar"';$vwlbar = ' class="vwlbar"';$vbbar = ' class="vbbar"';$vrbar = ' class="vrbar"';$vgbar = ' class="vgbar"';// Start moodle modification: use own XHProfRuns implementation.// $xhprof_runs_impl = new XHProfRuns_Default();$xhprof_runs_impl = new moodle_xhprofrun();$reducedata = xhprof_get_bool_param('reducedata', 0); // Don't reduce data by default.$xhprof_runs_impl->set_reducedata($reducedata);if ($reducedata) {// We need to inject it, so we continue in "reduced data mode" all the time.$params['reducedata'] = $reducedata;}// End moodle modification.displayXHProfReport($xhprof_runs_impl, $params, $source, $run, $wts,$symbol, $sort, $run1, $run2);echo "</body>";echo "</html>";