Skip to content

ShawnROGrady/benchplot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

benchplot

This is a tool to plot the results of go benchmarks. It assumes that each sub-benchmark is named as var_name=var_value. The input is the output of a go benchmark.

Usage

benchplot -bench ${bench} -x ${x_var} ${FILE} Where ${FILE} is the path to a file containing the output of a go benchmark (if empty or "-" stdin is used), ${bench} is the name of the benchmark to plot, and ${x_var} is the name of the variable to use for the x-axis of the plot.

Full flag set:

  -bench string
    	The name of the benchmark to plot
  -filter-by value
    	Expressions to filter results by. Form: 'var_name==var_value'. Available comparison operations: ["==" "!=" "<" ">" "<=" ">="]
  -group-by value
    	The variables to group results by (an input to the benchmark)
  -h	Show this help message and exit
  -height float
    	The height of the output figure (default 500)
  -left-legend
    	Display legend on left edge of plot (default is on right edge)
  -o string
    	The output file name with extension (if empty will be set to ${bench}.png)
  -plots value
    	The plots to generate (options = ["scatter" "avg_line"]). If empty will default to ["scatter" "avg_line"] for numeric data
  -top-legend
    	Display legend on top edge of plot (default is on bottom edge)
  -width float
    	The width of the output figure (default 500)
  -x string
    	The name of the x-axis variable (an input to the benchmark)
  -y string
    	The name of the y-axis variable (default "time")

Examples

Plotting the results of BenchmarkGroupResults (in benchmark_test.go of benchparse repo):

go test ./benchmark -run ! -bench BenchmarkGroupResults -count 3 -race | benchplot -bench BenchmarkGroupResults -group-by group_by_count -x num_results

benchgroupres

Next Steps

Right now the main focus is bringing the feature set to parity with my initial implementation of this tool which used Python and matplotlib. This includes supporting bar charts (which would be the default if the provided ${x_var} had non-numeric data) and filtering of data.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published