if benchrunner: rustcc = rustc["--test"] else: rustcc = rustc rustcc = rustcc["-Z", "time-passes", "-O", "-o", binname, crate] rustc_output = measure_cmd(rustcc) data = {} data["crate"] = crate data["rustc"] = rcd = dict(rustc_output.__dict__) rcd["sha"] = sha rcd["cli"] = str(rustcc) rcd["elapsed"] = rcd["elapsed"] - overhead rcd["memory_data"] = process_stat(rcd["memory_data"]) rcd["cpuacct"] = dict(rcd["cpuacct"].__dict__) rcd["pass_timing"] = pt = [] # extract pass timing for line in rustc_output.stdout.split("\n")[:-1]: cols = line.split(" ") name = line.split("\t")[-1] pt.append((name, float(cols[1]))) prcd = local["./" + str(binname)] if benchrunner: prcd = prcd["--bench"] program_output = measure_cmd(prcd)
from plumbum.cmd import rustc, sleep, sudo, cgcreate from benchlib import measure_cmd, process_stat def avg(l): return sum(l) / len(l) cmd = sys.argv[1:] user = os.environ['USER'] filename = os.getenv('MEMBENCH_LOGFILE', 'membench.log') try: os.remove(filename) except: pass logging.basicConfig(level=logging.DEBUG, filename=filename) cmd = local[cmd[0]][tuple(cmd[1:])] outp = measure_cmd(cmd) data = dict(outp.__dict__) data["cli"] = str(cmd) data["memory_data"] = process_stat(outp.memory_data) data["cpuacct"] = dict(outp.cpuacct.__dict__) sys.stdout.write(json.dumps(data) + "\n")