1
0
Fork 0
mirror of https://codeberg.org/forgejo/forgejo.git synced 2024-12-24 13:09:23 -05:00
forgejo/modules/util
Gusted 0d8478cff8
[GITEA] Drop sha256-simd in favor of stdlib
- In Go 1.21 the crypto/sha256 [got a massive
improvement](https://go.dev/doc/go1.21#crypto/sha256) by utilizing the
SHA instructions for AMD64 CPUs, which sha256-simd already was doing.
The performance is now on par and I think it's preferable to use the
standard library rather than a package when possible.

```
cpu: AMD Ryzen 5 3600X 6-Core Processor
                │  simd.txt   │               go.txt                │
                │   sec/op    │    sec/op     vs base               │
Hash/8Bytes-12    63.25n ± 1%    73.38n ± 1%  +16.02% (p=0.002 n=6)
Hash/64Bytes-12   98.73n ± 1%   105.30n ± 1%   +6.65% (p=0.002 n=6)
Hash/1K-12        567.2n ± 1%    572.8n ± 1%   +0.99% (p=0.002 n=6)
Hash/8K-12        4.062µ ± 1%    4.062µ ± 1%        ~ (p=0.396 n=6)
Hash/1M-12        512.1µ ± 0%    510.6µ ± 1%        ~ (p=0.485 n=6)
Hash/5M-12        2.556m ± 1%    2.564m ± 0%        ~ (p=0.093 n=6)
Hash/10M-12       5.112m ± 0%    5.127m ± 0%        ~ (p=0.093 n=6)
geomean           13.82µ         14.27µ        +3.28%

                │   simd.txt   │               go.txt                │
                │     B/s      │     B/s       vs base               │
Hash/8Bytes-12    120.6Mi ± 1%   104.0Mi ± 1%  -13.81% (p=0.002 n=6)
Hash/64Bytes-12   618.2Mi ± 1%   579.8Mi ± 1%   -6.22% (p=0.002 n=6)
Hash/1K-12        1.682Gi ± 1%   1.665Gi ± 1%   -0.98% (p=0.002 n=6)
Hash/8K-12        1.878Gi ± 1%   1.878Gi ± 1%        ~ (p=0.310 n=6)
Hash/1M-12        1.907Gi ± 0%   1.913Gi ± 1%        ~ (p=0.485 n=6)
Hash/5M-12        1.911Gi ± 1%   1.904Gi ± 0%        ~ (p=0.093 n=6)
Hash/10M-12       1.910Gi ± 0%   1.905Gi ± 0%        ~ (p=0.093 n=6)
geomean           1.066Gi        1.032Gi        -3.18%
```

(cherry picked from commit abd94ff5b5)
(cherry picked from commit 15e81637ab)

Conflicts:
	go.mod
	https://codeberg.org/forgejo/forgejo/pulls/1581
(cherry picked from commit 5caea2d75aeac78fb306f58a3cf7809d5b70c7f2)
(cherry picked from commit 08da542cce)
(cherry picked from commit d71a8cc9fb)
(cherry picked from commit 63c9fc2bee)
(cherry picked from commit e1db85d48a)
(cherry picked from commit 5e86a5d2d1)
2023-11-13 14:06:31 +01:00
..
filebuffer Add Debian package registry (#24426) 2023-05-02 12:31:35 -04:00
rotatingfilewriter Replace interface{} with any (#25686) 2023-07-04 18:36:08 +00:00
color.go Modify luminance calculation and extract related functions into single files (#24586) 2023-05-10 11:19:03 +00:00
color_test.go Modify luminance calculation and extract related functions into single files (#24586) 2023-05-10 11:19:03 +00:00
error.go Replace interface{} with any (#25686) 2023-07-04 18:36:08 +00:00
file_unix.go Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
file_unix_test.go Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
file_windows.go Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
io.go Fix profile render when the README.md size is larger than 1024 bytes (#25131) 2023-06-13 09:02:25 +00:00
io_test.go Fix profile render when the README.md size is larger than 1024 bytes (#25131) 2023-06-13 09:02:25 +00:00
keypair.go [GITEA] Drop sha256-simd in favor of stdlib 2023-11-13 14:06:31 +01:00
keypair_test.go [GITEA] Drop sha256-simd in favor of stdlib 2023-11-13 14:06:31 +01:00
legacy.go Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
legacy_test.go Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
pack.go Replace interface{} with any (#25686) 2023-07-04 18:36:08 +00:00
pack_test.go Add support for incoming emails (#22056) 2023-01-14 23:57:10 +08:00
paginate.go Replace interface{} with any (#25686) 2023-07-04 18:36:08 +00:00
paginate_test.go Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
path.go Refactor lfs requests (#26783) 2023-09-18 08:40:50 +00:00
path_test.go Use a general approach to access custom/static/builtin assets (#24022) 2023-04-12 18:16:45 +08:00
remove.go Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
sanitize.go Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
sanitize_test.go Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
sec_to_time.go Store and use seconds for timeline time comments (#25392) 2023-06-23 12:12:39 +00:00
sec_to_time_test.go Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
shellquote.go Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
shellquote_test.go Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
slice.go Replace util.SliceXxx with slices.Xxx (#26958) 2023-09-07 09:37:47 +00:00
slice_test.go Replace util.SliceXxx with slices.Xxx (#26958) 2023-09-07 09:37:47 +00:00
string.go Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
string_test.go Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
timer.go Rewrite queue (#24505) 2023-05-08 19:49:59 +08:00
timer_test.go Use a general approach to access custom/static/builtin assets (#24022) 2023-04-12 18:16:45 +08:00
truncate.go Add ability to set multiple redirect URIs in OAuth application UI (#25072) 2023-06-05 15:00:12 +08:00
truncate_test.go Use more specific test methods (#24265) 2023-04-22 17:56:27 -04:00
url.go Add RemoteAddress to mirrors (#26952) 2023-09-16 16:03:02 +00:00
util.go Use Go 1.21 and update dependencies (#26878) 2023-09-03 10:34:57 +00:00
util_test.go Handle base64 decoding correctly to avoid panic (#26483) 2023-08-14 10:30:16 +00:00