https://github.com/romshark/utf8
A fork of the encoding/utf8 Go standard library package with experimental performance optimizations.
https://github.com/romshark/utf8
Last synced: 6 months ago
JSON representation
A fork of the encoding/utf8 Go standard library package with experimental performance optimizations.
- Host: GitHub
- URL: https://github.com/romshark/utf8
- Owner: romshark
- Created: 2023-11-18T19:34:17.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2023-11-22T21:06:36.000Z (almost 2 years ago)
- Last Synced: 2024-06-21T17:04:10.231Z (over 1 year ago)
- Language: Go
- Size: 773 KB
- Stars: 4
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Experimental encoding/utf8
⚠️ Experimental, don't use in production! ⚠️
This is a fork of the [encoding/utf8](https://github.com/golang/go/tree/631a6c2abfb2cf7a877ea80f98c504fc4e0077be/src/unicode/utf8) Go standard library package with experimental performance optimizations.
## Benchmark Results
**Ryzen 7 5700X**
```
goos: linux
goarch: amd64
pkg: utf8validbench
cpu: AMD Ryzen 7 5700X 8-Core Processor
│ amd64_old.txt │ amd64_new.txt │
│ sec/op │ sec/op vs base │
/ascii_16b.txt 2.626n ± 1% 2.624n ± 1% ~ (p=0.565 n=16)
/ascii_2k.txt 138.2n ± 0% 115.2n ± 0% -16.68% (p=0.000 n=16)
/unicode_2k.txt 1.620µ ± 1% 1.045µ ± 2% -35.49% (p=0.000 n=16)
/wiki_ukr.html 1253.1µ ± 0% 694.9µ ± 1% -44.54% (p=0.000 n=16)
/wiki_jap.html 1956.7µ ± 0% 878.4µ ± 0% -55.11% (p=0.000 n=16)
/ascii_1mib.txt 72.45µ ± 1% 49.24µ ± 1% -32.03% (p=0.000 n=16)
geomean 6.862µ 4.601µ -32.95%
```**Apple M1 on Sonoma 14.1.1**
```
goos: darwin
goarch: arm64
pkg: utf8validbench
│ m1_old.txt │ m1_new.txt │
│ sec/op │ sec/op vs base │
/ascii_16b.txt 3.415n ± 0% 2.484n ± 0% -27.26% (p=0.000 n=16)
/ascii_2k.txt 178.0n ± 0% 130.4n ± 0% -26.74% (p=0.000 n=16)
/unicode_2k.txt 2.190µ ± 0% 1.353µ ± 0% -38.22% (p=0.000 n=16)
/wiki_ukr.html 1592.0µ ± 0% 905.8µ ± 0% -43.10% (p=0.000 n=16)
/wiki_jap.html 2.411m ± 0% 1.102m ± 0% -54.28% (p=0.000 n=16)
/ascii_1mib.txt 86.24µ ± 0% 55.09µ ± 0% -36.12% (p=0.000 n=16)
geomean 8.723µ 5.375µ -38.39%
```**Raspberry Pi 2 Model B**
```
goos: linux
goarch: arm
pkg: utf8validbench
│ raspi_old.txt │ raspi_new.txt │
│ sec/op │ sec/op vs base │
/ascii_16b.txt 187.0n ± 1% 172.5n ± 1% -7.73% (p=0.000 n=16)
/ascii_2k.txt 18.90µ ± 1% 17.27µ ± 3% -8.62% (p=0.000 n=16)
/unicode_2k.txt 52.53µ ± 3% 65.95µ ± 2% +25.53% (p=0.000 n=16)
/wiki_ukr.html 32.16m ± 4% 28.93m ± 3% -10.05% (p=0.000 n=16)
/wiki_jap.html 57.98m ± 2% 49.27m ± 3% -15.03% (p=0.000 n=16)
/ascii_1mib.txt 10.380m ± 2% 9.281m ± 2% -10.59% (p=0.000 n=16)
geomean 391.4µ 370.8µ -5.26%
```