Skip to content
Snippets Groups Projects
memcached_qps_scan_numa.py 1.62 KiB
Newer Older
Peter Cai's avatar
Peter Cai committed
import matplotlib.pyplot as plt
from matplotlib.legend_handler import HandlerTuple
Peter Cai's avatar
Peter Cai committed
from config import markers, colors
from memcached_qps_scan import extract_qps_latency
import os

experiments = [
  "memcached_qps_scan.5.15.79-peter.first4.t8.c20", # vanilla
  "memcached_qps_scan.5.15.79-peter.kernel_polling.first4.t8.c20", # kernel polling
]

experiments_uma = [
  "memcached_qps_scan.5.15.79-peter.t8.c20", # vanilla
  "memcached_qps_scan.5.15.79-peter.kernel_polling.t8.c20", # kernel polling
]

Peter Cai's avatar
Peter Cai committed
names = [
  "vanilla",
Peter Cai's avatar
Peter Cai committed
]

def show_plot():
    plt.cla()

    data = extract_qps_latency(experiments)
    data_uma = extract_qps_latency(experiments_uma)
Peter Cai's avatar
Peter Cai committed
    for i in range(len(experiments)):
        k = experiments[i]
        display_name = names[i]
        p.append(plt.errorbar([data[k][0][j] / 1000 for j in range(len(data[k][0]))], data[k][1], yerr = data[k][2], capsize = 4, marker = markers[display_name], color = colors[display_name]))
        pref.append(plt.errorbar([data_uma[k][0][j] / 1000 for j in range(len(data_uma[k][0]))], data_uma[k][1], linestyle = 'dotted', color = colors[display_name]))
    plt.xlabel('QPS (x1000)')
    plt.ylabel('Latency (99th percentile, μs)')
Peter Cai's avatar
Peter Cai committed
    plt.yscale('log')
    plt.xlim(xmin = 0)

    p.insert(0, (pref[0], pref[1]))
    plt.legend(handles = p, labels = [ "reference" ] + names, handler_map = {tuple: HandlerTuple(None)})
Peter Cai's avatar
Peter Cai committed
    if os.getenv('SAVE_FIGURE') != 'true':
        plt.rcParams.update({'font.size': 16})
        plt.show()
    else:
        plt.savefig('../data/figs/memcached_qps_scan_numa.png', dpi = 192)

show_plot()