-
Notifications
You must be signed in to change notification settings - Fork 352
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
filters/builtin: minor performance optimization for sanitize in StripQuery Filter #2940
filters/builtin: minor performance optimization for sanitize in StripQuery Filter #2940
Conversation
Please include benchstat results (without 10+10 before/after benchmark outputs) into last commit message (and update PR description). I'd also suggest to prefix commit messages with a package name, e.g.: |
90996ab
to
6769d14
Compare
6769d14
to
aa75b28
Compare
aa75b28
to
afdd426
Compare
I attached benchmark results in last commit (afdd426) I have also tried to use I've also re-wrote description pointing out my motivation for a contribution. I'm sorry if previously it was thought as some issue with time-pressure. It is not pressuring at all, it's just my attempt to do an enhancement on some small part of source code. I thought that if it would succeed, I can try something bigger next. |
You'd need to |
534a4b4
to
a3265f1
Compare
This commit introduces a benchmark for the sanitize function in the stripQuery filter. Signed-off-by: Troy Kohler <troyalekson@gmail.com>
69d9e0e
to
1bd4760
Compare
pkg: github.com/zalando/skipper/filters/builtin │ HEAD~1 │ HEAD │ │ sec/op │ sec/op vs base │ Sanitize-8 802.1n ± 0% 748.3n ± 0% -6.71% (p=0.000 n=10) │ HEAD~1 │ HEAD │ │ B/op │ B/op vs base │ Sanitize-8 472.0 ± 0% 192.0 ± 0% -59.32% (p=0.000 n=10) │ HEAD~1 │ HEAD │ │ allocs/op │ allocs/op vs base │ Sanitize-8 15.00 ± 0% 14.00 ± 0% -6.67% (p=0.000 n=10) Signed-off-by: Troy Kohler <troyalekson@gmail.com>
1bd4760
to
1d3c012
Compare
func BenchmarkSanitize(b *testing.B) { | ||
piece := "query=cXVlcnkgUGRwKCRjb25maWdTa3U6IElEIS&variables=%7B%0A%20%20%20%20%22beautyColorImageWidth%22:%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20200,%0A%20%20%20%20%22portraitGalleryWidth%22:%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20828,%0A%20%20%20%20%22segmentedBannerHeaderLogoWidth%22:%20%20%20%20%20%20%20%20%20%20%20%20%20%2084,%0A%20%20%20%20%22shouldIncludeCtaTrackingKey%22:%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20false,%0A%20%20%20%20%22shouldIncludeFlagInfo%22:%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20false,%0A%20%20%20%20%22shouldIncludeHistogramValues%22:%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20false,%0A%20%20%20%20%22shouldIncludeOfferSelectionValues%22:%20%20%20%20%20%20%20%20%20%20%20true,%0A%20%20%20%20%22shouldIncludeOmnibusConfigModeChanges%22:%20%20%20%20%20%20%20false,%0A%20%20%20%20%22shouldIncludeOmnibusPriceLabelChanges%22:%20%20%20%20%20%20%20false,&apiEndpoint=https%253A%252F%252Fmodified%252Fsecret%252Fgraphql%252Fsecret&frontendType=secret&zalandoFeature=secret" | ||
q := strings.Repeat(piece, 2) | ||
v, e := url.ParseQuery(q) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please use err instead of e like elsewhere.
👍 |
1 similar comment
👍 |
This is continuation of https://github.com/zalando/skipper/pull/2918/files
I have discovered that for certain cases string builder performs better than buffer, which is usually a go-to option for Go Developers. String builder was introduced in 1.10+ Go.
results (also attached to last commit message)