Bencher
democratizes continuous benchmarking for the Go programming language!
We democratize benchmarking your Go applications; taking out the hassle and ergonomic complexities related to manually benchmarking changes, provisiion quiet machines and interpreting regressions and improvements.
We are high performance hounds and we want to hunt down every inefficiency for you.
What is Bencher?
Bencher is the premiere continuous benchmarking product from Orijtech Inc, whose focus is to bring high performance engineering to the doorstep of every single Go developer. Your programs can only be as performant as you can measure and fix. If you can’t measure it, you most likely are missing out on its performance.
The core functionality of Bencher is that we integrate with your applications on Github and other version hosting systems. Our product comes from tens+ thousands of hours of high performance engineering.
Once Bencher is integrated, you don’t have to worry at all about trying to look through regressions or improvement and measuring them.
Features
Quiet automagically provisioned machines
To effectively benchmark, you need quiet machines with no other programs running on them; no web browser, no IDE, just quiet machines always ready to run your benchmarks. Our systems handle all the heavy lifting for you!
2-click integration
Integrating Bencher is as trivial as just visiting the Github marketplace After this any subsequent commits and PRs will automatically be benchmarked.
Rule based interpretation results. Flexibility
How do you judge regressions? How do you judge improvements? Are there directories that have different sensitivies? How would you like to configure what gets reported? Set rules for example:
global:
reg_min: 10.9
imp_min: 25.5
benchmarks:
dimensions:
alloc/op:
reg_min: 5
imp_min: -2.47
lost:
reg_min: 16.78
imp_min: -25.17
.+:
reg_min: 20
imp_min: -12
per_dir:
worker/dir.+:
reg_min: 10
imp_min: 15
doc/tail.+:
reg_min: 20
imp_min: 58
benchmarks:
SendRecv/msgsize:
reg_min: 55
imp_min: -20
GoParse3339InLocation:
reg_min: 5
imp_min: -4
or choose if you want suppress all regressions
suppress_failure_on_regression: true
Zero management
We build and work on planet scale systems; we do understand what it means to have to manage your own systems and our mission is to make it super painless to integrate benchmarking and high performance code.
Solve arguments super fast
Talk is cheap, code and results determine the course. No more need to speculate, get concrete data with Bencher. Experiment with performance hypotheses, and prove them very fast and show well backed data to your team.