Skip to content

Commit 4ea866a

Browse files
authored
feat: improve string (#19)
1 parent 1d8c752 commit 4ea866a

File tree

10 files changed

+262
-220
lines changed

10 files changed

+262
-220
lines changed

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ fuzz-all:
2020
@sh scripts/fuzz-all.sh $(fuzzTime)
2121

2222
bench:
23-
@go test -bench=BenchmarkString -benchmem -benchmem -memprofile=mem.out -cpuprofile=cpu.out -run NONE
23+
@go test -bench=BenchmarkGVString -benchmem -benchmem -memprofile=mem.out -cpuprofile=cpu.out -run NONE
2424

2525
# https://stackoverflow.com/questions/6273608/how-to-pass-argument-to-makefile-from-command-line
2626
%:

benchmarks/Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11

22
bench:
33
# @go test -bench BenchmarkMarshalJSON -benchmem -memprofile mem.out -cpuprofile cpu.out -run NONE
4-
@go test -bench BenchmarkParse -benchmem -count=10 -run NONE > new.txt
4+
@go test -bench BenchmarkMarshalJSON -benchmem -count=10 -run NONE > new.txt
55

66
bench-udec:
77
@rm -f bench-udec.txt

benchmarks/README.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -68,14 +68,14 @@ BenchmarkParse/1234567890-32
6868
BenchmarkParse/0.1234567890123456879-32 44339668 26.45 ns/op 0 B/op 0 allocs/op
6969
BenchmarkParseFallBack/123456789123456789123456.1234567890123456-32 2805122 473.3 ns/op 192 B/op 6 allocs/op
7070
BenchmarkParseFallBack/111222333444555666777888999.1234567890123456789-32 2442004 500.8 ns/op 216 B/op 6 allocs/op
71-
BenchmarkString/1234567890123456789.1234567890123456879-32 12797790 98.69 ns/op 48 B/op 1 allocs/op
72-
BenchmarkString/0.1234567890123456879-32 18784728 57.20 ns/op 24 B/op 1 allocs/op
71+
BenchmarkString/1234567890123456789.1234567890123456879-32 14577884 76.50 ns/op 48 B/op 1 allocs/op
72+
BenchmarkString/0.1234567890123456879-32 41109242 40.02 ns/op 24 B/op 1 allocs/op
7373
BenchmarkStringFallBack/123456789123456789123456.1234567890123456-32 4147044 256.2 ns/op 208 B/op 4 allocs/op
7474
BenchmarkStringFallBack/111222333444555666777888999.1234567890123456789-32 3808071 313.3 ns/op 208 B/op 4 allocs/op
7575
7676
# Marshal/Unmarshal
77-
BenchmarkMarshalJSON/1234567890123456789.1234567890123456879-32 15796016 96.75 ns/op 48 B/op 1 allocs/op
78-
BenchmarkMarshalJSON/0.1234567890123456879-32 22017422 54.95 ns/op 24 B/op 1 allocs/op
77+
BenchmarkMarshalJSON/1234567890123456789.1234567890123456879-32 13965998 77.22 ns/op 48 B/op 1 allocs/op
78+
BenchmarkMarshalJSON/0.1234567890123456879-32 24039360 43.57 ns/op 24 B/op 1 allocs/op
7979
BenchmarkMarshalJSON/12345678901234567891234567890123456789.1234567890123456879-32 3445560 291.6 ns/op 320 B/op 5 allocs/op
8080
BenchmarkUnmarshalJSON/1234567890123456789.1234567890123456879-32 15943234 73.77 ns/op 0 B/op 0 allocs/op
8181
BenchmarkUnmarshalJSON/123456.123456-32 46983879 26.55 ns/op 0 B/op 0 allocs/op
@@ -98,8 +98,8 @@ Parse/1234567890123456789.1234567890123456879-32
9898
Parse/0.1234567890123456879-32 262.30n ± 17% 25.93n ± 3% -90.11% (p=0.000 n=10)
9999
ParseFallBack/123456789123456789123456.1234567890123456-32 373.2n ± 13% 418.3n ± 7% +12.08% (p=0.000 n=10)
100100
ParseFallBack/111222333444555666777888999.1234567890123456789-32 418.5n ± 5% 453.4n ± 9% +8.33% (p=0.003 n=10)
101-
String/1234567890123456789.1234567890123456879-32 284.45n ± 26% 97.61n ± 11% -65.68% (p=0.000 n=10)
102-
String/0.1234567890123456879-32 173.80n ± 15% 58.94n ± 15% -66.09% (p=0.000 n=10)
101+
String/1234567890123456789.1234567890123456879-32 284.45n ± 26% 77.35n ± 10% -72.81% (p=0.000 n=10)
102+
String/0.1234567890123456879-32 173.80n ± 15% 42.60n ± 6% -75.49% (p=0.000 n=10)
103103
StringFallBack/123456789123456789123456.1234567890123456-32 394.1n ± 15% 268.4n ± 22% -31.90% (p=0.000 n=10)
104104
StringFallBack/111222333444555666777888999.1234567890123456789-32 353.4n ± 26% 307.3n ± 6% -13.04% (p=0.004 n=10)
105105
Add/1234567890123456789.1234567890123456879.Add(1111.1789)-32 384.65n ± 10% 10.87n ± 3% -97.18% (p=0.000 n=10)
@@ -118,8 +118,8 @@ DivFallback/12345679012345679890123456789.1234567890123456789.Div(999999)-32
118118
DivFallback/1234.Div(12345679012345679890123456789.1234567890123456789)-32 242.1n ± 87% 292.9n ± 4% ~ (p=0.481 n=10)
119119
Pow/1.01.Pow(10)-32 724.70n ± 31% 40.83n ± 3% -94.37% (p=0.000 n=10)
120120
Pow/1.01.Pow(100)-32 1.367µ ± 8% 1.062µ ± 7% -22.28% (p=0.000 n=10)
121-
MarshalJSON/1234567890123456789.1234567890123456879-32 451.65n ± 6% 96.56n ± 7% -78.62% (p=0.000 n=10)
122-
MarshalJSON/0.1234567890123456879-32 204.70n ± 7% 54.62n ± 8% -73.32% (p=0.000 n=10)
121+
MrshalJSON/1234567890123456789.1234567890123456879-32 451.65n ± 6% 72.53n ± 12% -83.94% (p=0.000 n=10)
122+
MarshalJSON/0.1234567890123456879-32 204.70n ± 7% 43.49n ± 7% -78.75% (p=0.000 n=10)
123123
MarshalJSON/12345678901234567891234567890123456789.1234567890123456879-32 523.6n ± 15% 358.4n ± 7% -31.55% (p=0.000 n=10)
124124
UnmarshalJSON/1234567890123456789.1234567890123456879-32 488.90n ± 10% 73.75n ± 1% -84.92% (p=0.000 n=10)
125125
UnmarshalJSON/0.1234567890123456879-32 449.70n ± 9% 40.97n ± 1% -90.89% (p=0.000 n=10)

benchmarks/bench-ss.txt

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -132,6 +132,16 @@ BenchmarkString/0.1234567890123456879-32 64
132132
BenchmarkString/0.1234567890123456879-32 6106804 182.6 ns/op 80 B/op 4 allocs/op
133133
BenchmarkString/0.1234567890123456879-32 8340056 170.9 ns/op 80 B/op 4 allocs/op
134134
BenchmarkString/0.1234567890123456879-32 7816422 144.5 ns/op 80 B/op 4 allocs/op
135+
BenchmarkString/12345.1234567890123456789-32 4406620 262.8 ns/op 176 B/op 5 allocs/op
136+
BenchmarkString/12345.1234567890123456789-32 4715979 240.2 ns/op 176 B/op 5 allocs/op
137+
BenchmarkString/12345.1234567890123456789-32 5084666 232.1 ns/op 176 B/op 5 allocs/op
138+
BenchmarkString/12345.1234567890123456789-32 5469702 250.0 ns/op 176 B/op 5 allocs/op
139+
BenchmarkString/12345.1234567890123456789-32 5063049 242.4 ns/op 176 B/op 5 allocs/op
140+
BenchmarkString/12345.1234567890123456789-32 4717598 225.0 ns/op 176 B/op 5 allocs/op
141+
BenchmarkString/12345.1234567890123456789-32 4795444 241.4 ns/op 176 B/op 5 allocs/op
142+
BenchmarkString/12345.1234567890123456789-32 4823866 251.8 ns/op 176 B/op 5 allocs/op
143+
BenchmarkString/12345.1234567890123456789-32 5811994 236.4 ns/op 176 B/op 5 allocs/op
144+
BenchmarkString/12345.1234567890123456789-32 4685367 242.8 ns/op 176 B/op 5 allocs/op
135145
BenchmarkStringFallBack/123456789123456789123456.1234567890123456-32 3008487 382.0 ns/op 272 B/op 5 allocs/op
136146
BenchmarkStringFallBack/123456789123456789123456.1234567890123456-32 4295414 329.6 ns/op 272 B/op 5 allocs/op
137147
BenchmarkStringFallBack/123456789123456789123456.1234567890123456-32 3388437 372.2 ns/op 272 B/op 5 allocs/op

0 commit comments

Comments
 (0)