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); }
/** * {@inheritdoc} */ public function handle(Request $request, $type = HttpKernelInterface::MASTER_REQUEST, $catch = true) { $startTime = microtime(true); $this->logger->debug(($type === HttpKernelInterface::MASTER_REQUEST ? 'Master-Request: ' : 'Sub-Request') . $request->getMethod() . ' ' . $request->getRequestUri()); $previous = isset($this->request) ? $this->request : null; $this->request = $request; $response = $this->kernel->handle($request, $type, $catch); $this->request = $previous; if ($this['developmentMode']) { $queryCount = Util\Propel::getQueryCount(); $this->logger->debug("Response completed", array('time' => microtime(true) - $startTime, 'mem' => Helper::humanReadableBytes(memory_get_peak_usage()), 'sql' => $queryCount !== null ? $queryCount : 'n/a')); } return $response; }