https://github.com/magnusmorton/trace-analysis
Raw File
Tip revision: 4645af99638edea16d00e811c922b0fb9d6b86d9 authored by Magnus Morton on 11 January 2016, 20:33:10 UTC
subplots and recording output
Tip revision: 4645af9
assembly_plot.py
import argparse
import matplotlib.pyplot as plt
from itertools import izip
import trace_parser

dot = lambda x,y: sum(a*b for a,b in izip(x,y))
def main():
    parser = argparse.ArgumentParser(description="Compare assembly to jit ops")
    parser.add_argument("filenames", metavar="<file>", nargs = '+')
    parser.add_argument("--model", "-m",  default="cmw")

    args = parser.parse_args()
    
    if args.model == "cm0":
        model = [0,0,0,0,0]
    elif args.model == "cmc":
        model = [1,1,1,1,1]
    elif args.model == "cmw":
        model = [211,34,590,9937,14]
    else:
        model = [int(num) for num in args.model.split(",")]
    traces = trace_parser.parse_files(args.filenames, fragment=True)
    print len(traces)
    assembly_counts = [trace.assembly_count for trace in traces if len(trace.ops) < 5000]
    class_counts = [trace.class_counts() for trace in traces if len(trace.ops) < 5000]
    costs = [dot(count, model) for count in class_counts]
    plt.ylabel("Assembly counts")
    plt.xlabel("Cost")
    plt.title("Assembly vs Cost")
    plt.scatter(costs, assembly_counts)
    plt.show()
    return 0

if __name__ == '__main__':
    main()
back to top