gorilla / mux

Package gorilla/mux is a powerful HTTP router and URL matcher for building Go web servers with 🦍
https://gorilla.github.io
BSD 3-Clause "New" or "Revised" License
20.94k stars 1.85k forks source link

[feature] continuous benchmarking with gobencher #640

Closed odeke-em closed 2 years ago

odeke-em commented 3 years ago

Is your feature request related to a problem? Please describe.

A clear and concise description of what the problem is - e.g. "I'm always frustrated when [...]"

The ability to trivially benchmark and examine regressions as they happen. Regressions currently can happen and they aren't caught. Luckily we've got folks like @harshavardhana and @klauspost who read through the code manually or noticed hot paths on their server, and will go fix problems like in https://github.com/gorilla/mux/pull/579 and https://github.com/gorilla/mux/pull/544, but unfortunately that change #579 didn't include benchmark results, though here are what they look like https://dashboard.github.orijtech.com/benchmark/f746b02388744f02b238f582d1a87dfb

Screen Shot 2021-09-05 at 12 57 49 PM

Describe the solution you'd like

What would the feature look like? How would it work? How would it change the API?

On the Github marketplace, you can add gobencher in 1-click per https://github.com/marketplace/gobencher and then you'll never have to worry about benchmarking, all commits will be benchmarked against the base branch automatically and reuslts presented to you, hassle free!

Describe alternatives you've considered

Are there alternatives you've tried, and/or workarounds in-place?

Manually benchmarking every change -- this is tedious, error prone and no one does this consistently in practice. We've detailed why and how we built bencher per https://medium.com/orijtech-developers/bencher-b60cc82e3ef1

stale[bot] commented 2 years ago

This issue has been automatically marked as stale because it hasn't seen a recent update. It'll be automatically closed in a few days.