PHP GrindKit for reading cachegrind compatible file.
$grind = new GrindKit\GrindKit;
$files = $grind->scanDir(); // scan xdebug profile output by default.
$files // we got GrindKit\GrindFile object array, which is inherited from SplFileInfo.
foreach( $files as $file ) {
$meta = $file->getMeta();
$meta->version; # cache grind file version
$meta->creator; # creator, xdebug 2.1.1... or something
$meta->cmd;
$meta->part;
$meta->positions;
$result = $file->parse(); // get parser result.
$parser = new GrindKit\GrindParser( $file );
$result = $parser->parse();
$result->functions; // function list
$result->summary; // summary table
$result->headers; // header list
$tree = $result->getExecutionTree();
$result->dumpExecutionTree();
}
will dump the execution tree