Example #1
0
 function UpdateMemBar()
 {
     if ($this->mem_bar) {
         $ms = self::GetMemStats();
         $pu = round($ms['usage'] / $ms['limit'] * 100);
         if ($this->memprof && $pu > 90) {
             memprof_dump_callgrind(fopen("/tmp/callgrind_mem.out", "w"));
             die("memprof @{$pu}% written to /tmp/callgrind_mem.out");
         }
         if ($this->memprof) {
             self::DEcho("Mem Usage: {$pu} %<br />");
             //sleep(1);
         }
         $this->mem_bar->set($ms['usage']);
     }
 }
Example #2
0
                $cmdinfo = Request::GetCommand() ? sprintf(" processing command <i>%s</i>", Request::GetCommand()) : "";
                $extrace = $ex->getTrace();
                $trace = !empty($extrace) ? "\n\nTrace:\n" . print_r($extrace, 1) : "";
                ZPush::PrintZPushLegal($exclass . $cmdinfo, sprintf('<pre>%s</pre>', $ex->getMessage() . $trace));
            }
        }
    }
    // Announce exception to process loop detection
    if (ZPush::GetDeviceManager(false)) {
        ZPush::GetDeviceManager()->AnnounceProcessException($ex);
    }
    // Announce exception if the TopCollector if available
    ZPush::GetTopCollector()->AnnounceInformation(get_class($ex), true);
    ZPush::FinishResponse();
}
// save device data if the DeviceManager is available
if (ZPush::GetDeviceManager(false)) {
    ZPush::GetDeviceManager()->Save();
}
// end gracefully
if (version_compare(phpversion(), '5.4.0') < 0) {
    ZLog::Write(LOGLEVEL_DEBUG, sprintf("-------- End - max mem: %s/%s - time: %s - code: %s", memory_get_peak_usage(false), memory_get_peak_usage(true), number_format(time() - $_SERVER["REQUEST_TIME"], 4), http_response_code()));
} else {
    ZLog::Write(LOGLEVEL_DEBUG, sprintf("-------- End - max mem: %s/%s - time: %s - code: %s", memory_get_peak_usage(false), memory_get_peak_usage(true), number_format(microtime(true) - $_SERVER["REQUEST_TIME_FLOAT"], 4), http_response_code()));
}
if (defined('LOG_MEMORY_PROFILER') && LOG_MEMORY_PROFILER) {
    if (function_exists('memprof_enable')) {
        // Be aware that the pid is not unique, so we will overwrite the output in some cases. But using the pid will be easier to relate the dump with the log lines
        memprof_dump_callgrind(fopen(LOG_MEMORY_PROFILER_FILE . "_" . getmypid(), "w"));
    }
}
Example #3
0
 public static function downMemProfiler()
 {
     if (function_exists('memprof_enable')) {
         memprof_dump_callgrind(fopen(sys_get_temp_dir() . '/callgrind.humbug.out', 'w'));
     }
 }