def remove_pycs(vcs=None): if vcs == 'git': cmd = ['git', 'clean', '-fdX'] subprocess.check_call(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE) else: perf.RemovePycs()
def run_benchmark(benchmark, trials, env): """ Similar to perf.MeasureGeneric, but modified a bit for our purposes. """ # Remove Pycs, then call the command once to prime the pump and # re-generate fresh ones. This makes sure we're measuring as little of # Python's startup time as possible. perf.RemovePycs() command = [sys.executable, '%s/benchmark.py' % benchmark] out, _, _ = perf.CallAndCaptureOutput(command + ['-t', 1], env, track_memory=False, inherit_env=[]) if out.startswith('SKIP:'): raise SkipBenchmark(out.replace('SKIP:', '').strip()) # Now do the actual mesurements. output = perf.CallAndCaptureOutput(command + ['-t', str(trials)], env, track_memory=False, inherit_env=[]) stdout, stderr, mem_usage = output message = email.message_from_string(stdout) data_points = [float(line) for line in message.get_payload().splitlines()] return perf.RawData(data_points, mem_usage, inst_output=stderr)