excimer/ExcimerLog.php (19 lines of code) (raw):

<?php /** * A collected series of stack traces and some utility methods to aggregate them. * * ExcimerLog acts as a container for ExcimerLogEntry objects. The Iterator or * ArrayAccess interfaces may be used to access them. For example: * * foreach ($profiler->getLog() as $entry) { * var_dump($entry->getTrace()); * } */ class ExcimerLog implements ArrayAccess, Iterator { /** * ExcimerLog is not constructible by user code. Objects of this type * are available via: * - ExcimerProfiler::getLog() * - ExcimerProfiler::flush() * - The callback to ExcimerProfiler::setFlushCallback() */ final private function __construct() {} /** * Aggregate the stack traces and convert them to a line-based format * understood by Brendan Gregg's FlameGraph utility. Each stack trace is * represented as a series of function names, separated by semicolons. * After this identifier, there is a single space character, then a number * giving the number of times the stack appeared. Then there is a line * break. This is repeated for each unique stack trace. * * @return string */ public function formatCollapsed() {} /** * Produce an array with an element for every function which appears in * the log. The key is a human-readable unique identifier for the function, * method or closure. The value is an associative array with the following * elements: * * - self: The number of events in which the function itself was running, * no other userspace function was being called. This includes time * spent in internal functions that this function called. * - inclusive: The number of events in which this function appeared * somewhere in the stack. * * And optionally the following elements, if they are relevant: * * - file: The filename in which the function appears * - line: The exact line number at which the first relevant event * occurred. * - class: The class name in which the method is defined * - function: The name of the function or method * - closure_line: The line number at which the closure was defined * * The event counts in the "self" and "inclusive" fields are adjusted for * overruns. They represent an estimate of the number of profiling periods * in which those functions were present. * * @return array */ public function aggregateByFunction() {} /** * Get an array which can be JSON encoded for import into speedscope * * @return array */ public function getSpeedscopeData() {} /** * Get the total number of profiling periods represented by this log. * * @return int */ public function getEventCount() {} /** * Get the current ExcimerLogEntry object. Part of the Iterator interface. * * @return ExcimerLogEntry|null */ public function current() {} /** * Get the current integer key or null. Part of the Iterator interface. * * @return int|null */ public function key() {} /** * Advance to the next log entry. Part of the Iterator interface. */ public function next() {} /** * Rewind back to the first log entry. Part of the Iterator interface. */ public function rewind() {} /** * Check if the current position is valid. Part of the Iterator interface. * * @return bool */ public function valid() {} /** * Get the number of log entries contained in this log. This is always less * than or equal to the number returned by getEventCount(), which includes * overruns. * * @return int */ public function count() {} /** * Determine whether a log entry exists at the specified array offset. * Part of the ArrayAccess interface. * * @param int $offset * @return bool */ public function offsetExists($offset) {} /** * Get the ExcimerLogEntry object at the specified array offset. * * @param int $offset * @return ExcimerLogEntry|null */ public function offsetGet($offset) {} /** * This function is included for compliance with the ArrayAccess interface. * It raises a warning and does nothing. * * @param int $offset * @param mixed $value */ public function offsetSet($offset, $value) {} /** * This function is included for compliance with the ArrayAccess interface. * It raises a warning and does nothing. * * @param int $offset */ public function offsetUnset($offset) {} }