return array */ public static function memoryUsage(string $prefix): array { // skip if DEBUG is off if (self::$debug_memory === false) { return []; } if (empty(self::$start_memory)) { self::$start_memory = memory_get_usage(); } $memory_usage = memory_get_usage(); $data = [ 'prefix' => $prefix, 'peak' => memory_get_peak_usage(), 'usage' => $memory_usage, 'start' => $memory_usage - self::$start_memory, 'last' => $memory_usage - self::$previous_memory, 'set' => $memory_usage - self::$set_memory ]; self::$previous_memory = $memory_usage; return $data; } /** * returns a human readable output from the memoryUsage function * can be used for logging purpose * * @param array $data Data array from memoryUsage * @param bool $raw Flag to shaw unconverted memory numbers * @return string Return debug string with memory usage */ public static function printMemoryUsage(array $data, bool $raw = false): string { return '[' . $data['prefix'] . '] Peak/Curr/Change: ' . Byte::humanReadableByteFormat($data['peak']) . '/' . Byte::humanReadableByteFormat($data['usage']) // . ($raw === true ? ' [' . $data['usage'] . ']' : '') . '/Since Start: ' . Byte::humanReadableByteFormat($data['start']) . ($raw === true ? ' [' . $data['start'] . ']' : '') . ' | Since Last: ' . Byte::humanReadableByteFormat($data['last']) . ($raw === true ? ' [' . $data['last'] . ']' : '') . ' | Since Set: ' . Byte::humanReadableByteFormat($data['set']) . ($raw === true ? ' [' . $data['set'] . ']' : ''); } } // __END__