mirror of
https://github.com/winfsp/winfsp.git
synced 2026-07-29 15:59:28 -05:00
8.4 KiB
8.4 KiB
In [ ]:
import glob, os
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
nameord = ["ntfs", "memfs", "ntptfs"]
datamap = {}
for f in sorted(glob.iglob("*.csv")):
datamap.setdefault(f.rsplit("-", maxsplit=1)[0], []).append(f)
df = None
for n in nameord:
ndf = None
for f in datamap[n]:
df0 = pd.read_csv(f, header=None, names=["test", "iter", n])
if ndf is None:
ndf = df0
else:
ndf = ndf.combine(df0, np.minimum)
if df is None:
df = ndf
else:
df = df.merge(ndf, how="left")
#dfIn [ ]:
markermap = { "ntfs": "$\mathtt{N}$", "memfs": "$\mathtt{M}$", "ntptfs": "$\mathtt{P}$"}
for t, tdf in df.groupby("test", sort=False):
plt.figure(figsize=(10,8), dpi=100, facecolor="white")
plt.title(t)
xlabel = "iter"
if t.startswith("file_"):
xlabel = "files"
for n in nameord:
tdf.plot(ax=plt.gca(), x="iter", xlabel=xlabel, y=n, ylabel="time", marker=markermap[n], ms=8)
plt.legend(nameord)
plt.savefig(t + ".png")
#plt.show()
plt.close()In [ ]:
fileord = ["create", "open", "iter.open", "overwrite", "list", "list_single", "delete"]
fdf = pd.concat([df[df.iter == 5000], df[df.iter == 50]])
fdf.test = fdf.test.map(lambda x: x.replace("file_", "").replace("_test", ""))
fdf = fdf.set_index("test").loc[fileord]
fdf.memfs /= fdf.ntfs; fdf.ntptfs /= fdf.ntfs; fdf.ntfs = 1
plt.figure(figsize=(10,8), dpi=100, facecolor="white")
plt.suptitle("File Tests", fontweight="light", fontsize=20, y=0.95)
plt.title("(Shorter bars are better)")
fdf.plot.barh(ax=plt.gca(), y=nameord).invert_yaxis()
plt.gca().set(ylabel=None)
for container in plt.gca().containers:
plt.gca().bar_label(container, fmt="%0.2f", padding=4.0, fontsize="xx-small")
plt.savefig("file_tests.png")
#plt.show()
plt.close()In [ ]:
rdwrord = ["cc_read_page", "cc_write_page", "nc_read_page", "nc_write_page", "mmap_read", "mmap_write"]
sdf = df[df.iter == 500].copy()
sdf.test = sdf.test.map(lambda x: x.replace("rdwr_", "").replace("_test", ""))
sdf = sdf.set_index("test").loc[rdwrord]
sdf.memfs /= sdf.ntfs; sdf.ntptfs /= sdf.ntfs; sdf.ntfs = 1
plt.figure(figsize=(10,8), dpi=100, facecolor="white")
plt.suptitle("Read/Write Tests", fontweight="light", fontsize=20, y=0.95)
plt.title("(Shorter bars are better)")
sdf.plot.barh(ax=plt.gca(), y=nameord).invert_yaxis()
plt.gca().set(ylabel=None)
for container in plt.gca().containers:
plt.gca().bar_label(container, fmt="%0.2f", padding=4.0, fontsize="xx-small")
plt.savefig("rdwr_tests.png")
#plt.show()
plt.close()






















