Expanded visualizer; filled table in report
This commit is contained in:
parent
8e4c770ff6
commit
0c2c3a045a
5 changed files with 99 additions and 8 deletions
|
|
@ -32,4 +32,15 @@ parser.add_argument(
|
|||
parser.add_argument(
|
||||
"-i", "--interactive", type=bool, help="show pyplot when finished drawing",
|
||||
default=True
|
||||
)
|
||||
|
||||
# Customizability
|
||||
parser.add_argument(
|
||||
"--x-label", type=str, help="X axis label", default="Runtime (μs)"
|
||||
)
|
||||
parser.add_argument(
|
||||
"--y-label", type=str, help="Y axis label", default="Write amount (KiB)"
|
||||
)
|
||||
parser.add_argument(
|
||||
"--gen-title", type=bool, help="Generate title (legacy)", default=True
|
||||
)
|
||||
|
|
@ -3,6 +3,7 @@ from argparse import Namespace
|
|||
import glob
|
||||
from typing import List, Tuple, Union, Optional
|
||||
import re
|
||||
import sys # stderr
|
||||
|
||||
import trappy
|
||||
import pandas as pd
|
||||
|
|
@ -92,9 +93,17 @@ def run(args: Namespace):
|
|||
if fngraph_df is None:
|
||||
print("No entry -- pass")
|
||||
continue
|
||||
size_in_kb = parse_basename_to_kibs(
|
||||
str(path.basename(ftrace_dat_path).split(".")[:-1]))
|
||||
ftrace_dfs.append((size_in_kb, fngraph_df))
|
||||
try:
|
||||
label = parse_basename_to_kibs(
|
||||
path.basename(ftrace_dat_path).split(".")[:-1])
|
||||
except Exception:
|
||||
label = str(path.basename(ftrace_dat_path))
|
||||
print(
|
||||
f"Cannot parse size in basename '{label}', using basename...",
|
||||
file=sys.stderr
|
||||
)
|
||||
|
||||
ftrace_dfs.append((label, fngraph_df))
|
||||
|
||||
ftrace_dfs.sort(key=lambda tp: tp[0])
|
||||
|
||||
|
|
@ -109,16 +118,27 @@ def run(args: Namespace):
|
|||
plot_df = pd.concat(series, axis=1, keys=indices) # In long-form
|
||||
print("Plot shape: {}; head: \n{}"
|
||||
.format(plot_df.shape, plot_df.head()))
|
||||
print("Quantiles | 25p: \n{} | 50p: \n{} | 75p: \n{} | 99p: \n{}".format(
|
||||
plot_df.quantile(.25, interpolation="nearest"),
|
||||
plot_df.quantile(.50, interpolation="nearest"),
|
||||
plot_df.quantile(.75, interpolation="nearest"),
|
||||
plot_df.quantile(.99, interpolation="nearest"),
|
||||
))
|
||||
|
||||
# plot violin plot
|
||||
fig, ax = plt.subplots(figsize=(12, 8))
|
||||
sns.violinplot(
|
||||
data=plot_df, orient="h", fill=False, log_scale=args.use_log_scale,
|
||||
inner="quart")
|
||||
ax.set_xlabel("Runtime (μs)")
|
||||
ax.set_ylabel("Write amount (KiB)")
|
||||
ax.set_title("Percentile: {}{}"
|
||||
.format(args.percentile, ", log scale" if args.use_log_scale else ""))
|
||||
ax.set_xlabel(args.x_label)
|
||||
ax.set_ylabel(args.y_label)
|
||||
if args.gen_title:
|
||||
ax.set_title("Percentile: {}{}"
|
||||
.format(
|
||||
args.percentile,
|
||||
", log scale" if args.use_log_scale else ""
|
||||
)
|
||||
)
|
||||
fig.savefig(args.output)
|
||||
|
||||
if args.interactive:
|
||||
|
|
|
|||
Binary file not shown.
Loading…
Add table
Add a link
Reference in a new issue