51        $t1 = explode(
" ", $t1);
 
   52        $t2 = explode(
" ", $t2);
 
   53        $diff = $t2[0] - $t1[0] + $t2[1] - $t1[1];
 
   68        $q = 
"DELETE FROM benchmark";
 
   69        $ilDB->manipulate($q);
 
   81    public function start($a_module, $a_bench)
 
   92    public function stop($a_module, $a_bench)
 
  106            $this->db_enabled_user == 
$ilUser->getLogin()) {
 
  107            if (is_array($this->db_bench) && is_object(
$ilDB)) {
 
  108                $this->db_bench_stop_rec = 
true;
 
  110                $ilDB->manipulate(
"DELETE FROM benchmark");
 
  111                foreach ($this->db_bench as $b) {
 
  113                    $ilDB->insert(
"benchmark", array(
 
  114                        "id" => array(
"integer", 
$id),
 
  115                        "duration" => array(
"float", $this->
microtimeDiff($b[
"start"], $b[
"stop"])),
 
  116                        "sql_stmt" => array(
"clob", $b[
"sql"])
 
  125        if (defined(
"SLOW_REQUEST_TIME") && SLOW_REQUEST_TIME > 0) {
 
  126            $t1 = explode(
" ", 
$GLOBALS[
'ilGlobalStartTime']);
 
  127            $t2 = explode(
" ", microtime());
 
  128            $diff = $t2[0] - $t1[0] + $t2[1] - $t1[1];
 
  129            if ($diff > SLOW_REQUEST_TIME) {
 
  132                $diff = round($diff, 4);
 
  134                include_once(
"./Services/Logging/classes/class.ilLog.php");
 
  135                $slow_request_log = 
new ilLog(
 
  140                $slow_request_log->write(
"SLOW REQUEST (" . $diff . 
"), Client:" . CLIENT_ID . 
", GET: " .
 
  141                    str_replace(
"\n", 
" ", print_r(
$_GET, 
true)) . 
", POST: " .
 
  160        $q = 
"SELECT COUNT(*) AS cnt, AVG(duration) AS avg_dur, benchmark," .
 
  161            " MIN(duration) AS min_dur, MAX(duration) AS max_dur" .
 
  163            " WHERE module = " . 
$ilDB->quote($a_module, 
"text") . 
" " .
 
  164            " GROUP BY benchmark" .
 
  165            " ORDER BY benchmark";
 
  166        $bench_set = 
$ilDB->query($q);
 
  168        while ($bench_rec = 
$ilDB->fetchAssoc($bench_set)) {
 
  169            $eva[] = array(
"benchmark" => $bench_rec[
"benchmark"],
 
  170                "cnt" => $bench_rec[
"cnt"], 
"duration" => $bench_rec[
"avg_dur"],
 
  171                "min" => $bench_rec[
"min_dur"], 
"max" => $bench_rec[
"max_dur"]);
 
  185        $q = 
"SELECT COUNT(*) AS cnt FROM benchmark";
 
  186        $cnt_set = 
$ilDB->query($q);
 
  187        $cnt_rec = 
$ilDB->fetchAssoc($cnt_set);
 
  189        return $cnt_rec[
"cnt"];
 
  213        return $ilSetting->get(
"bench_max_records", (
int) $a_max);
 
  230        return (
boolean) 
$ilSetting->get(
"enable_bench");
 
  260        $q = 
"SELECT DISTINCT module FROM benchmark";
 
  261        $mod_set = 
$ilDB->query($q);
 
  264        while ($mod_rec = 
$ilDB->fetchAssoc($mod_set)) {
 
  265            $modules[$mod_rec[
"module"]] = $mod_rec[
"module"];
 
  279        if (isset($this->bench[$a_module . 
":" . $a_bench])) {
 
  280            return $this->bench[$a_module . 
":" . $a_bench][count($this->bench[$a_module . 
":" . $a_bench]) - 1];
 
  301        if (isset($this->db_enabled)) {
 
  302            return $this->db_enabled;
 
  309        $this->db_enabled = 
$ilSetting->get(
"enable_db_bench");
 
  310        $this->db_enabled_user = 
$ilSetting->get(
"db_bench_user");
 
  311        return $this->db_enabled;
 
  353        } 
catch (InvalidArgumentException $e) {
 
  358            && $this->db_enabled_user == 
$ilUser->getLogin()
 
  359            && !$this->db_bench_stop_rec) {
 
  360            $this->
start = microtime();
 
  375        } 
catch (InvalidArgumentException $e) {
 
  380            && $this->db_enabled_user == 
$ilUser->getLogin()
 
  381            && !$this->db_bench_stop_rec) {
 
  382            $this->db_bench[] = array(
 
  383                "start" => $this->
start,
 
  384                "stop" => microtime(),
 
  405        $set = 
$ilDB->query(
"SELECT * FROM benchmark");
 
  407        while ($rec = 
$ilDB->fetchAssoc($set)) {
 
  408            $b[] = array(
"sql" => $rec[
"sql_stmt"],
 
  409                "time" => $rec[
"duration"]);
 
An exception for terminatinating execution or to throw for unit testing.
performance measurement class
start($a_module, $a_bench)
start measurement
getMeasuredTime($a_module, $a_bench)
Get measurement.
getMeasuredModules()
get all current measured modules
enableDbBench($a_enable, $a_user=0)
Enable DB benchmarking.
setMaximumRecords($a_max)
set maximum number of benchmark records
stop($a_module, $a_bench)
stop measurement
getMaximumRecords()
get maximum number of benchmark records
getCurrentRecordNumber()
get current number of benchmark records
getDbBenchRecords()
Get db benchmark records.
isDbBenchEnabled()
Check wether benchmarking is enabled or not.
__construct()
Constructor.
enable($a_enable)
enable benchmarking
getEvaluation($a_module)
get performance evaluation data
startDbBench($a_sql)
start measurement
save()
save all measurements
isEnabled()
check wether benchmarking is enabled or not
clearData()
delete all measurement data
static shortenText( $a_str, $a_len, $a_dots=false, $a_next_blank=false, $a_keep_extension=false)
shorten a string to given length.
if(!array_key_exists('StateId', $_REQUEST)) $id
$GLOBALS['JPEG_Segment_Names']
Global Variable: XMP_tag_captions.