Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Graph: Combined Jitter Scatter-plot and Box-plot #275

Open
redknightlois opened this issue Oct 4, 2016 · 7 comments
Open

Graph: Combined Jitter Scatter-plot and Box-plot #275

redknightlois opened this issue Oct 4, 2016 · 7 comments

Comments

@redknightlois
Copy link
Contributor

With all the data that any benchmark gets as results and the amount of times operations tend to be executed, its not a bad idea to also allow outputting this kind of graph

Combined Jitter Scatter plot and Box plot

The explanation of the graph is here: https://www.pvk.ca/Blog/2012/07/03/binary-search-star-eliminates-star-branch-mispredictions/

@dbgoytia
Copy link

dbgoytia commented Jul 1, 2022

Hey @AndreyAkinshin ! I was wondering if this issue is still relevant? I'd like to contribute, although I might need a bit of help getting started

@AndreyAkinshin
Copy link
Member

@dbgoytia yes, it's still relevant.
At the moment, BenchmarkDotNet doesn't have its own plotting subsystem. The only way to generate plots is [RPlotExporter]. It uses locally installed R and a custom R script that could be found here. Thus, the only way to support a new kind of plots is to add the corresponding changes in the R script (no C#, sorry).

P.S. It would be nice to have own plotting system so that we can draw charts without installed R. However, we don't want to add any additional dependencies to other NuGet packages. Thus, we should implement such a plotting logic from scratch. It's a huge tasks that require a lot of efforts, so we don't have it in the roadmap for the nearest future. Also, it makes sense to implement it on the perfolizer side rather than in BenchmarkDotNet.

@FlatlinerDOA
Copy link
Contributor

Can I suggest a separate Nuget package is created to support it BenchmarkDotNet.Exporters.Plot or something, and use a library like ScottPlot at least for basic box plots - https://scottplot.net/cookbook/5.0/

@AndreyAkinshin
Copy link
Member

@FlatlinerDOA sounds good to me. While I'm still against adding NuGet dependencies to the main package without a good reason, we have no limitations on creating new packages with any dependencies.

@FlatlinerDOA
Copy link
Contributor

@AndreyAkinshin I've got a basic Bar Plot outputting for now in a separate package called BenchmarkDotNet.Exporters.Plotting. Is your preference to get all plots supported first (in one large PR). Or just get a preview package set up and add plot types one by one?

@AndreyAkinshin
Copy link
Member

@FlatlinerDOA thanks again for the PR and sorry for such a long delay with merging.
It's better to add plots one-by-one. I will include the new NuGet package in the upcoming release.

@FlatlinerDOA
Copy link
Contributor

@AndreyAkinshin no worries, I have created two PR's: One #2611 is a small to fix a bug in the result filtering, and #2614 for adding Box Plots.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants