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
wiki: Would like a page to list community benchmarks #21664
Comments
A good place to start would probably be the list of "Popular Packages" here, which I think measures how many times a given package is imported... if the packages in that list have benchmarks, we could add them. |
@dr2chase awesome, thank you for starting this! It's great to see this up as a follow up of the team discussions at the Go contributor summit. So in regards to
For official contacts of the Ethereum benchmarks, kindly pinging @karalabe @fjl @gluk256: might y'all have some input on @dr2chase's questions? |
I'd appreciate at least one benchmark that looks at UUID serialization. There are a few different packages. |
If you can name an example or two of UUID serialization benchmarks, I'll give them a look. |
https://github.com/satori/go.uuid/blob/master/benchmarks_test.go |
for logging, uber/zap has a series of logging benchmarks for popular logging libraries https://github.com/uber-go/zap#performance helpfully compiled here |
@dr2chase while I think this is awesome, and I can see the benefit / need for this, I think that this also needs to be tackled with care as people might misinterpret those projects as being reference projects and we already have a problem with the most frequent question being: |
We could add a disclaimer. Wanting to be sure that a benchmark "matters" will tend to bias us towards popular projects, however. |
I can help with getting benchmarks out of Ethereum if need be, though it will take a bit of looking around to see what's "meaningful" from Go's perspective and which ones aren't (some of our VM benchmarks are there to aid in pricing decisions, not so much in measuring raw performance). |
Perhaps another aspect that would be nice to touch on is the performance on different platforms. In our specific use cases, some hashing packages are implemented in assembly for amd64, but not for others. It might be useful to see the discrepancies between architectures too thus. |
@dr2chase yes, disclaimer should be good enough imho (hopefully). For some recommendations of popular packages:
Should I also list applications that contain benchmarks rather than just libraries? |
Maybe this data compression package would be useful as well: https://github.com/flanglet/kanzi/tree/master/go/src/kanzi/benchmark |
Note that it has to be go-gettable. That is, there should be a one-line command like this:
that succeeds. The intent is that this be input to a program that gets benchmarks, compiles them, and runs them in a container. |
A go-bindata benchmark would be helpful. How long does it take to e.g. compile JS, CSS, templates, images and SQL queries into a Go package. https://github.com/jteeuwen/go-bindata |
I went and looked, and there are tests, but no benchmarks. Does the proposed benchmark measure
The last one is the one that seems relevant to application performance. |
What did you expect to see?
A table listing important benchmarks from the open source community, so that Go compiler and runtime developers can get a better idea of which optimizations matter and which do not, and to avoid performance surprises late in the release cycle. The existing go1 benchmark suite is not that good.
Ideally these benchmarks would have the following properties:
Information for each benchmark would include:
There may be more than one directory in a project containing benchmarks, and that's okay, these can be listed as separate benchmarks.
For example:
and
I've done some work creating a preliminary list of benchmarks I think is likely to be interesting, and it includes code from the following github projects:
In the list above,
ethereum_whisperv5
does not appear because all the benchmarks were noisy.I also don't have official contacts for these benchmarks, and I don't know if the benchmarks I selected are representative or not.
What did you see instead?
No such page.
@aclements
The text was updated successfully, but these errors were encountered: