You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
103 lines
3.2 KiB
103 lines
3.2 KiB
2 years ago
|
<?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 param
|
||
|
xhprof_param_init($params);
|
||
|
|
||
|
/* reset params to be a array of variable names to values
|
||
|
by the end of this page, param should only contain values that need
|
||
|
to 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();
|
||
|
// End moodle modification.
|
||
|
|
||
|
displayXHProfReport($xhprof_runs_impl, $params, $source, $run, $wts,
|
||
|
$symbol, $sort, $run1, $run2);
|
||
|
|
||
|
|
||
|
echo "</body>";
|
||
|
echo "</html>";
|