Newer
Older
import matplotlib.pyplot as plt
from memcached_conn_scan import collect_data
from config import markers, colors
import os
experiments_t1 = [
"memcached_conn_scan.5.15.79-peter.t1", # vanilla
"memcached_conn_scan.5.15.79-peter.kernel_polling.t1", # kernel polling
"memcached_conn_scan.5.4.0-136-generic.fstack.t1", # fstack
]
experiments_t8 = [
"memcached_conn_scan.5.15.79-peter.t8", # vanilla
"memcached_conn_scan.5.15.79-peter.kernel_polling.t8", # kernel polling
]
labels = [
"vanilla",
"kernel polling (patched)",
"fstack",
]
def plot(threads):
if threads == 1:
experiments = experiments_t1
experiments = experiments_t8
data = collect_data(experiments)
plt.cla()
for i in range(len(experiments)):
exp = experiments[i]
label = labels[i]
plt.errorbar(data[exp][0], [data[exp][1][j] / 1000 for j in range(len(data[exp][1]))], yerr = [data[exp][2][j] / 1000 for j in range(len(data[exp][2]))], capsize = 4, label = label, marker = markers[label], color = colors[label])
plt.xlabel('Connections (per client w/ 56 clients)')
plt.ylabel('QPS (x1000)')
plt.legend()
if os.getenv('SAVE_FIGURE') != 'true':
plt.rcParams.update({'font.size': 16})
plt.show()
else:
plt.savefig('../data/figs/memcached_conn_scan.t%d.png' % (threads,), dpi = 192)
plot(1)
plot(8)