Skip to content
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

sha256: drop minio in favor of crypto/sha256 for go1.21 and above #173

Merged
merged 2 commits into from
May 24, 2023

Commits on May 24, 2023

  1. 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` quadrupled in speed because it was never wired to use minio's sha256 implementation and thus
    was brought back up to speed 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).
    Jorropo committed May 24, 2023
    Configuration menu
    Copy the full SHA
    e162f27 View commit details
    Browse the repository at this point in the history
  2. chore: release v0.2.2

    Jorropo committed May 24, 2023
    Configuration menu
    Copy the full SHA
    f44ccfc View commit details
    Browse the repository at this point in the history