'; $close = '

'; $divider = ":"; $prefix = '
'; $suffix = '
'; break; case 'code': $open = ''; $close = ''; $divider = ": "; $prefix = '
';
                    $suffix = '
'; break; case 'comment': default: $open = ''; $divider = ":"; $prefix = ''; $suffix = ''; break; } echo $prefix; // TIME REPORT // --------------------------------------------------------------------- echo "\n\n{$open} Timings {$close}"; // valid from php 7.3 // $start = self::$timeSpots[ array_key_first(self::$timespots) ]; // $end = self::$timeSpots[ array_key_last(self::$timespots) ]; $start = self::$timeSpots['start']; $end = self::$timeSpots['end']; $all_dt = number_format($end - $start , 4)*1000 ." ms"; // if more than 2 timespots // echo dt between each spot if (count(self::$timeSpots) > 2) { // calculate dt between spots $time_results = array(); $prev_key = ''; $prev_time = 0; foreach(self::$timeSpots as $key => $t) { if (!$prev_time) { $prev_time = $t; $prev_key = $key; } else { $dt = number_format($t - $prev_time , 4)*1000 ." ms"; $time_results[] = array( 'part' => "{$prev_key}[..{$key}]", ///$key, 'dt' => $dt ); $prev_key = $key; //// "{$prev_key}[..{$key}]"; $prev_time = $t; } } // echo timings foreach ($time_results as $key => $val) { echo "\n\t{$open} {$val['part']} {$divider} {$val['dt']} {$close}"; } } // echo total time echo "\n\t{$open} total {$divider} {$all_dt} {$close}"; // MEMORY REPORT // --------------------------------------------------------------------- echo "\n\n{$open} Memory Usage {$close}"; if (count(self::$memoryUse) > 2) { foreach (self::$memoryUse as $key => $val) { echo "\n\t{$open} {$key} {$divider} {$val}MB {$close}"; } } else { echo "\n\t{$open} memory usage {$divider} ". round(memory_get_usage()/(1024*1024),2) ."MB {$close}"; } echo $suffix; } } }