my_echo("PHP-P array unserialize time", $b->timeIt($f), "sec"); $xref = new XRef(); // init autoload etc $parser = new XRef_Parser_PHP(); $f = function () use($parser, $code, $filename) { $pf = $parser->parse($code, $filename); $pf->release(); }; my_echo("XRef internal parser", $b->timeIt($f, 30), "sec"); $slices = array(); $pf = $parser->parse($code, $filename); $project_database = new XRef_ProjectDatabase(); foreach ($xref->getPlugins("XRef_IProjectLintPlugin") as $id => $plugin) { $slices[$id] = $plugin->createFileSlice($pf); } $slices['_db'] = $project_database->createFileSlice($pf); $pf->release(); $serialized = serialize($slices); my_echo("XRef serialized size", strlen($serialized), "bytes"); $compressed = gzcompress($serialized); my_echo("XRef compressed size", strlen($compressed), "bytes"); $f = function () use($serialized) { $slices = unserialize($serialized); }; my_echo("XRef unserialize time", $b->timeIt($f), "sec"); function my_echo($prefix, $data, $suffix = null) { printf('%-30s %s', $prefix . ':', $data); if ($suffix) { echo " ", $suffix; }