You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
sha256: drop minio in favor of crypto/sha256 for go1.21 and above
In go1.21 the go std has a new SHANI accelerated rountine (just like minio's sha256). See golang/go#50543.
Reduce the code surface by dropping what is now a redondent librairy.
Benchmarks using go1.21 and go1.20 shows no significant difference between minio and the std for sha256:
```
name old time/op new time/op delta
SumAllLarge/sha2-256-12 8.63ms ± 3% 8.63ms ± 1% ~ (p=0.220 n=20+17)
SumAllLarge/sha2-512-12 23.1ms ± 3% 23.0ms ± 3% ~ (p=0.361 n=18+20)
SumAllLarge/dbl-sha2-256-12 36.0ms ± 4% 8.6ms ± 4% -76.16% (p=0.000 n=20+20)
name old speed new speed delta
SumAllLarge/sha2-256-12 1.94GB/s ± 4% 1.95GB/s ± 1% ~ (p=0.220 n=20+17)
SumAllLarge/sha2-512-12 725MB/s ± 3% 729MB/s ± 3% ~ (p=0.350 n=18+20)
SumAllLarge/dbl-sha2-256-12 467MB/s ± 4% 1958MB/s ± 4% +319.53% (p=0.000 n=20+20)
```
`dlb-sha2-256` doubled in speed because it was never wired to use minio's sha256 implementation and thus
was bumped by `crypto/sha256`'s improvement.
I think we should remove `github.com/multiformats/go-multihash/register/miniosha256` one go1.22 is released (~1 year) since it would be purposeless,
we could also stub it to github.com/multiformats/go-multihash/register/sha256 for all versions but [no one imports it directly](https://pkg.go.dev/github.com/multiformats/go-multihash/register/miniosha256?tab=importedby).
0 commit comments