static function addTimingPoint($description = "")
 {
     if (!eZDebug::isDebugEnabled()) {
         return;
     }
     if (!eZDebug::showMessage(self::SHOW_TIMING_POINT)) {
         return;
     }
     $time = microtime(true);
     $debug = eZDebug::instance();
     $usedMemory = 0;
     if (function_exists("memory_get_usage")) {
         $usedMemory = memory_get_usage();
     }
     $tp = array("Time" => $time, "Description" => $description, "MemoryUsage" => $usedMemory);
     $debug->TimePoints[] = $tp;
     $desc = "Timing Point: {$description}";
     foreach (array(self::LEVEL_NOTICE, self::LEVEL_WARNING, self::LEVEL_ERROR, self::LEVEL_DEBUG, self::LEVEL_STRICT) as $lvl) {
         if (isset($debug->TmpTimePoints[$lvl])) {
             $debug->TmpTimePoints[$lvl] = array();
         }
         if ($debug->TmpTimePoints[$lvl] === false and $debug->isLogFileEnabled($lvl)) {
             $files = $debug->logFiles();
             $file = $files[$lvl];
             $debug->writeFile($file, $desc, $lvl);
         } else {
             array_push($debug->TmpTimePoints[$lvl], $tp);
         }
     }
     $debug->write($description, self::LEVEL_TIMING_POINT);
 }