\n"); exit(1); } $root = realpath($argv[1]); $files = []; for ($i = 0; $i < 300; ++$i) { $source = "setTargetName('declaration_benchmark'); (new ReflectionMethod($compiler, 'setBuildDir'))->invoke($compiler, "$root/build"); $compiler->addFiles($files); foreach ($files as $file) { $compiler->prepareFile($file); } $compiler->convert($files); $generate = new ReflectionMethod($compiler, 'genDeclarationHeaders'); $samples = []; for ($i = 0; $i < 6; ++$i) { $start = hrtime(true); $generate->invoke($compiler, $files); if ($i > 0) { $samples[] = (hrtime(true) - $start) / 1e6; } } $hashes = []; foreach (glob("$root/build/include/*decl.h") as $file) { $hashes[basename($file)] = hash_file('sha256', $file); } ksort($hashes); echo "BENCHMARK_RESULT=" . json_encode(['ms' => $samples, 'headers' => count($hashes), 'sha256' => hash('sha256', json_encode($hashes))]) . "\n";