53 lines
1.5 KiB
Python
53 lines
1.5 KiB
Python
import pandas as pd
|
|
import matplotlib.pyplot as plt
|
|
import seaborn as sns
|
|
from sys import exit
|
|
import wquantiles as wq
|
|
|
|
df = pd.read_csv("./results_lite.csv")
|
|
print(df.head())
|
|
|
|
|
|
g = sns.FacetGrid(df, col="core", row="hash", legend_out=True)
|
|
|
|
|
|
def custom_hist(x, y1, y2, **kwargs):
|
|
sns.distplot(x,range(200, 280), hist_kws={"weights": y1, "histtype":"step"}, kde=False, **kwargs)
|
|
kwargs["color"] = "r"
|
|
sns.distplot(x, range(200, 280), hist_kws={"weights": y2, "histtype":"step"}, kde=False, **kwargs)
|
|
|
|
g.map(custom_hist, "time", "clflush_hit", "clflush_miss")
|
|
# g.map(sns.distplot, "time", hist_kws={"weights": df["clflush_hit"]}, kde=False)
|
|
|
|
plt.figure()
|
|
|
|
def stat(x, key):
|
|
return wq.median(x["time"], x[key])
|
|
|
|
|
|
miss = df.groupby(["core", "hash"]).apply(stat, "clflush_miss")
|
|
stats = miss.reset_index()
|
|
stats.columns = ["Core", "Hash", "Miss"]
|
|
hit = df.groupby(["core", "hash"]).apply(stat, "clflush_hit")
|
|
stats["Hit"] = hit.values
|
|
|
|
|
|
print(stats.to_string())
|
|
|
|
g = sns.FacetGrid(stats, row="Core")
|
|
|
|
g.map(sns.distplot, 'Miss', bins=range(200, 280), color="r")
|
|
g.map(sns.distplot, 'Hit', bins=range(200, 280))
|
|
plt.show()
|
|
|
|
#stats["clflush_miss_med"] = stats[[0]].apply(lambda x: x["miss_med"])
|
|
#stats["clflush_hit_med"] = stats[[0]].apply(lambda x: x["hit_med"])
|
|
#del df[[0]]
|
|
#print(hit.to_string(), miss.to_string())
|
|
|
|
# test = pd.DataFrame({"value" : [0, 5], "weight": [5, 1]})
|
|
# plt.figure()
|
|
# sns.distplot(test["value"], hist_kws={"weights": test["weight"]}, kde=False)
|
|
|
|
exit(0)
|