From 58f9dc78229079745f20c50c13db39898deef96d Mon Sep 17 00:00:00 2001 From: Florent Bruneau Date: Sat, 10 Nov 2007 23:36:50 +0100 Subject: [PATCH] Add a new PlProfiler tool based on PlBacktrace. To use: Just add PlProfiler::start("category", "event"); PlProfiler::stop("category"); so, if you want both to profile a loop and each step of the loop: PlProfiler::start("my loop"); for ($i = 0 ; $i < 2000 ; ++$i) { PlProfiler::start("my step", $i); do_sth(); PlProfiler::stop("my step"); } PlProfiler::stop("my loop"); The result will be displayed as a backtrace by category. Signed-off-by: Florent Bruneau --- ChangeLog | 3 +++ classes/plprofiler.php | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 52 insertions(+) create mode 100644 classes/plprofiler.php diff --git a/ChangeLog b/ChangeLog index 25fbb14..0098811 100644 --- a/ChangeLog +++ b/ChangeLog @@ -3,6 +3,9 @@ VERSION 0.9.16 XX XX 2007 New: + * Core: + - New PlProfiler tool -FRU + * Carnet: - List updated fields in notifications -FRU diff --git a/classes/plprofiler.php b/classes/plprofiler.php new file mode 100644 index 0000000..3b66426 --- /dev/null +++ b/classes/plprofiler.php @@ -0,0 +1,49 @@ +debug & DEBUG_BT)) { + return false; + } + if (!isset(PlBacktrace::$bt[$name])) { + new PlBacktrace($name); + } + PlBacktrace::$bt[$name]->start($info); + return true; + } + + static public function stop($name) + { + global $globals; + if (!($globals->debug & DEBUG_BT)) { + return false; + } + PlBacktrace::$bt[$name]->stop(); + return true; + } +} + +// vim:set et sw=4 sts=4 sws=4 foldmethod=marker enc=utf-8: +?> -- 2.1.4