21                $t1 = explode(
" ",$t1);
 
   22                $t2 = explode(
" ",$t2);
 
   23                $diff = $t2[0] - $t1[0] + $t2[1] - $t1[1];
 
   37                $q = 
"DELETE FROM benchmark";
 
   38                $ilDB->manipulate($q);
 
   49        function start($a_module, $a_bench)
 
   54                        $this->bench[$a_module.
":".$a_bench][] = microtime();
 
   64        function stop($a_module, $a_bench)
 
   69                        $this->bench[$a_module.
":".$a_bench][count($this->bench[$a_module.
":".$a_bench]) - 1]
 
   70                                = $this->
microtimeDiff($this->bench[$a_module.
":".$a_bench][count($this->bench[$a_module.
":".$a_bench]) - 1], microtime());
 
   83                        $this->db_enabled_user == 
$ilUser->getLogin())
 
   85                        if (is_array($this->db_bench) && is_object(
$ilDB))
 
   87                                $this->db_bench_stop_rec = 
true;
 
   89                                $ilDB->manipulate(
"DELETE FROM benchmark");
 
   90                                foreach ($this->db_bench as $b)
 
   92                                        $id = 
$ilDB->nextId(
'benchmark');
 
   93                                        $ilDB->insert(
"benchmark", array(
 
   94                                                "id" => array(
"integer", $id),
 
   95                                                "duration" => array(
"float", $this->
microtimeDiff($b[
"start"], $b[
"stop"])),
 
   96                                                "sql_stmt" => array(
"clob", $b[
"sql"])
 
  105                if (
defined(
"SLOW_REQUEST_TIME") && SLOW_REQUEST_TIME > 0)
 
  107                        $t1 = explode(
" ", 
$GLOBALS[
'ilGlobalStartTime']);
 
  108                        $t2 = explode(
" ", microtime());
 
  109                        $diff = $t2[0] - $t1[0] + $t2[1] - $t1[1];
 
  110                        if ($diff > SLOW_REQUEST_TIME)
 
  114                                $diff = round($diff, 4);
 
  116                                include_once(
"./Services/Logging/classes/class.ilLog.php");
 
  117                                $slow_request_log = 
new ilLog(
 
  121                                $slow_request_log->write(
"SLOW REQUEST (".$diff.
"), Client:".CLIENT_ID.
", GET: ".
 
  122                                        str_replace(
"\n", 
" ", print_r(
$_GET, 
true)).
", POST: ".
 
  142                $q = 
"SELECT COUNT(*) AS cnt, AVG(duration) AS avg_dur, benchmark,".
 
  143                        " MIN(duration) AS min_dur, MAX(duration) AS max_dur".
 
  145                        " WHERE module = ".$ilDB->quote($a_module, 
"text").
" ".
 
  146                        " GROUP BY benchmark".
 
  147                        " ORDER BY benchmark";
 
  148                $bench_set = 
$ilDB->query($q);
 
  150                while($bench_rec = 
$ilDB->fetchAssoc($bench_set))
 
  152                        $eva[] = array(
"benchmark" => $bench_rec[
"benchmark"],
 
  153                                "cnt" => $bench_rec[
"cnt"], 
"duration" => $bench_rec[
"avg_dur"],
 
  154                                "min" => $bench_rec[
"min_dur"], 
"max" => $bench_rec[
"max_dur"]);
 
  167                $q = 
"SELECT COUNT(*) AS cnt FROM benchmark";
 
  168                $cnt_set = 
$ilDB->query($q);
 
  169                $cnt_rec = 
$ilDB->fetchAssoc($cnt_set);
 
  171                return $cnt_rec[
"cnt"];
 
  182                return $ilias->getSetting(
"bench_max_records");
 
  193                $ilias->setSetting(
"bench_max_records", (
int) $a_max);
 
  209                return (
boolean) 
$ilSetting->get(
"enable_bench");
 
  222                        $ilias->setSetting(
"enable_bench", 1);
 
  226                        $ilias->setSetting(
"enable_bench", 0);
 
  238                $q = 
"SELECT DISTINCT module FROM benchmark";
 
  239                $mod_set = 
$ilDB->query($q);
 
  242                while ($mod_rec = 
$ilDB->fetchAssoc($mod_set))
 
  244                        $modules[$mod_rec[
"module"]] = $mod_rec[
"module"];
 
  258                if (isset($this->bench[$a_module.
":".$a_bench]))
 
  260                        return $this->bench[$a_module.
":".$a_bench][count($this->bench[$a_module.
":".$a_bench]) - 1];
 
  279                if (isset($this->db_enabled))
 
  281                        return $this->db_enabled;
 
  289                $this->db_enabled = 
$ilSetting->get(
"enable_db_bench");
 
  290                $this->db_enabled_user = 
$ilSetting->get(
"db_bench_user");
 
  291                return $this->db_enabled;
 
  306                        $ilias->setSetting(
"enable_db_bench", 1);
 
  309                                $ilias->setSetting(
"db_bench_user", $a_user);
 
  314                        $ilias->setSetting(
"enable_db_bench", 0);
 
  317                                $ilias->setSetting(
"db_bench_user", $a_user);
 
  334                        $this->db_enabled_user == 
$ilUser->getLogin() &&
 
  335                        !$this->db_bench_stop_rec)
 
  337                        $this->
start = microtime();
 
  353                        $this->db_enabled_user == 
$ilUser->getLogin() &&
 
  354                        !$this->db_bench_stop_rec)
 
  357                                array(
"start" => $this->
start, 
"stop" => microtime(),
 
  358                                        "sql" => $this->sql);
 
  372                $set = 
$ilDB->query(
"SELECT * FROM benchmark");
 
  374                while ($rec = 
$ilDB->fetchAssoc($set))
 
  376                        $b[] = array(
"sql" => $rec[
"sql_stmt"],
 
  377                                "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.
stopDbBench()
stop measurement
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.
$GLOBALS['loaded']
Global hash that tracks already loaded includes.
defined( 'APPLICATION_ENV')||define( 'APPLICATION_ENV'