protected function parse() { $handle = TraceFile::open($this->traceFile); while (!feof($handle)) { $line = fgets($handle, 4096); $parts = explode("\t", trim($line)); if (count($parts) >= 5) { if ('0' == $parts[2]) { $this->parseEntry($parts); } elseif ('1' == $parts[2]) { $this->parseExit($parts); } } } fclose($handle); }
/** * @return array */ protected function parse() { $peak = -1; $call = null; $file = null; $line = null; $entries = array(); $handle = TraceFile::open($this->traceFile); while (!feof($handle)) { // check line $buffer = fgets($handle, 4096); $parts = explode("\t", trim($buffer)); if (count($parts) < 5) { continue; } // save entry $level = $parts[0]; if ('0' == $parts[2]) { $entries[$level] = $parts; } // save peak $memory = $parts[4]; if ($memory > $peak) { $peak = $memory; if (isset($entries[$level])) { $call = $entries[$level][5]; $file = $entries[$level][8]; $line = $entries[$level][9]; } else { $call = null; $file = null; $line = null; } } } fclose($handle); return array($peak, $call, $file, $line); }
protected function parse() { if (isset(self::$calls[$this->traceFile])) { return; } self::$calls[$this->traceFile] = array(); $handle = TraceFile::open($this->traceFile); while (!feof($handle)) { $line = fgets($handle, 4096); $parts = explode("\t", trim($line)); if (count($parts) >= 5) { if ('0' == $parts[2]) { $this->parseEntry($parts); } elseif ('1' == $parts[2]) { $this->parseExit($parts); } } } fclose($handle); // calculate own time, and own memory foreach (self::$calls[$this->traceFile] as &$call) { $call['time-own'] = $call['time-inclusive'] - $call['time-children']; $call['memory-own'] = $call['memory-inclusive'] - $call['memory-children']; } }
public function testValidFile() { $handle = TraceFile::open(__DIR__ . '/_files/trace.xt'); $this->assertInternalType('resource', $handle); fclose($handle); }