public function postModule(PostModuleEvent $event)
 {
     $pageModuleWrapper = $event->getModuleWrapper();
     $queryCount = $event->getExtra('module_profiler.query_count');
     $time = microtime(true) - $event->getExtra('module_profiler.time');
     $userTime = Helper::getCpuTime('u') - $event->getExtra('module_profiler.user_time');
     $systemTime = Helper::getCpuTime('s') - $event->getExtra('module_profiler.system_time');
     $memoryUsage = memory_get_usage(true) - $event->getExtra('module_profiler.memory_usage');
     $sqlQueries = $queryCount !== null ? Propel::getQueryCount() - $queryCount : null;
     if ($userTime + $systemTime > $this->cpuLimit || $time > $this->timeLimit) {
         $this->logger->warning('Module generation time exceeded limit');
     }
     if ($memoryUsage > $this->memoryLimit) {
         $this->logger->warning('Module memory usage exceeded limit');
     }
     if ($sqlQueries > $this->sqlLimit) {
         $this->logger->warning('Module sql query count exceeded limit');
     }
     // add module debug info
     $this->moduleDebugInfo[] = array($pageModuleWrapper->getName(), $pageModuleWrapper->getClassName(), $pageModuleWrapper->getTemplate(), $pageModuleWrapper->getTarget(), (bool) $event->getExtra('module_cacher.cached'), round($time * 1000.0), round(($userTime + $systemTime) * 1000.0), Helper::humanReadableBytes($memoryUsage), Helper::humanReadableBytes(memory_get_peak_usage(true)), $sqlQueries !== null ? $sqlQueries : 'n/a');
     // Remove values to prevent caching
     $extras = $event->getExtras();
     unset($extras['module_profiler.time']);
     unset($extras['module_profiler.query_count']);
     unset($extras['module_profiler.user_time']);
     unset($extras['module_profiler.system_time']);
     unset($extras['module_profiler.memory_usage']);
     $event->setExtras($extras);
 }
Beispiel #2
0
 public function postModule(PostModuleEvent $event)
 {
     if ($this->isEnabled()) {
         $content = $this->adminModule($event->getContent(), $event->getModuleWrapper());
         $event->setContent($content);
     }
 }