diff --git a/.gitignore b/.gitignore index 1269488f7fb1f4b56a8c0e5eb48cecbfadfa9219..0c7b4fc7ae64700af8cf434ef028235f669d540a 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ data +__pycache__ diff --git a/analyze/config.py b/analyze/config.py new file mode 100644 index 0000000000000000000000000000000000000000..aad6ca23c35289c7f222bf32f5dd6a405580277a --- /dev/null +++ b/analyze/config.py @@ -0,0 +1,17 @@ +markers = { + "default": ".", + "kernel_polling": "+", + "manual_polling": "x", + "fstack": "s", + "caladan": "p", + "caladan (per-thread QPS w/ 2 threads)": "p" +} + +colors = { + "default": "tab:blue", + "kernel_polling": "tab:orange", + "manual_polling": "tab:purple", + "fstack": "tab:green", + "caladan": "tab:red", + "caladan (per-thread QPS w/ 2 threads)": "tab:red" +} diff --git a/analyze/memcached_conn_scan.py b/analyze/memcached_conn_scan.py index 8e30644ace6950bcd6bc51c314c8b8a7020b268a..10bc260b827b740a26d770072251087d238ccd56 100644 --- a/analyze/memcached_conn_scan.py +++ b/analyze/memcached_conn_scan.py @@ -1,5 +1,6 @@ import os import matplotlib.pyplot as plt +from config import markers, colors experiments = [f for f in os.listdir('../data') if f.startswith('memcached_conn_scan') and len(os.listdir(os.path.join('../data', f))) > 0] @@ -65,8 +66,9 @@ def show_plot(threads, include_caladan = False): data[name] = (data[name][0], [qps / 2 for qps in data[name][1]], data[name][2]) for k in data: - plt.plot(data[k][0], data[k][1], label = k) + plt.plot(data[k][0], data[k][1], label = k, marker = markers[k], color = colors[k]) + plt.ticklabel_format(axis = 'both', style = 'sci', scilimits = (0, 4)) plt.xlabel('Connections (per client w/ 7 * 8 clients)') plt.ylabel('QPS') @@ -87,7 +89,7 @@ def show_plot(threads, include_caladan = False): plt.title('Memcached connections vs LLC misses, %d threads' % (threads,), y = 1.08) for k in data: - plt.plot(data[k][0], data[k][2], label = k) + plt.plot(data[k][0], data[k][2], label = k, marker = markers[k], color = colors[k]) plt.xlabel('Connections (per client w/ 7 * 8 clients)') plt.ylabel('LLC misses per request') diff --git a/analyze/memcached_qps_scan.py b/analyze/memcached_qps_scan.py index 330ccb24cb49421f5b5474fb0638738c67a805fb..ae98f359c087b79d3fcb276bab03a4ae71f71384 100644 --- a/analyze/memcached_qps_scan.py +++ b/analyze/memcached_qps_scan.py @@ -1,5 +1,6 @@ import os import matplotlib.pyplot as plt +from config import markers, colors experiments = [f for f in os.listdir('../data') if f.startswith('memcached_qps_scan') and len(os.listdir(os.path.join('../data', f))) > 0] @@ -62,7 +63,7 @@ def show_plot(threads, include_caladan = False): data[name] = ([qps / 2 for qps in data[name][0]], data[name][1]) for k in data: - plt.plot(data[k][0], data[k][1], label = k) + plt.plot(data[k][0], data[k][1], label = k, marker = markers[k], color = colors[k]) plt.xlabel('QPS') plt.ylabel('Latency (99th percentile)')