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

Upgrade go 1.20 #847

Merged
merged 1 commit into from
Feb 8, 2023
Merged

Upgrade go 1.20 #847

merged 1 commit into from
Feb 8, 2023

Conversation

pelletier
Copy link
Owner

@pelletier pelletier commented Feb 8, 2023

Fixes #842

benchmark comparison between go 1.19.5 and go 1.20 on my computer:

goos: linux
goarch: amd64
pkg: github.com/pelletier/go-toml/v2/benchmark
cpu: AMD Ryzen 9 5950X 16-Core Processor
                                   │ go-1.19-bench.txt │          go-1.20-bench.txt           │
                                   │      sec/op       │    sec/op     vs base                │
UnmarshalDataset/config-32                 17.12m ± 1%   17.20m ±  0%        ~ (p=0.315 n=10)
UnmarshalDataset/canada-32                 72.01m ± 2%   62.07m ±  2%  -13.80% (p=0.000 n=10)
UnmarshalDataset/citm_catalog-32           24.23m ± 3%   21.20m ±  1%  -12.52% (p=0.000 n=10)
UnmarshalDataset/twitter-32                9.052m ± 2%   7.282m ± 13%  -19.56% (p=0.000 n=10)
UnmarshalDataset/code-32                   75.24m ± 3%   75.70m ±  0%        ~ (p=0.579 n=10)
UnmarshalDataset/example-32                138.8µ ± 2%   130.9µ ±  1%   -5.66% (p=0.000 n=10)
Unmarshal/SimpleDocument/struct-32         513.7n ± 1%   478.0n ±  0%   -6.95% (p=0.000 n=10)
Unmarshal/SimpleDocument/map-32            720.3n ± 0%   679.1n ±  0%   -5.71% (p=0.000 n=10)
Unmarshal/ReferenceFile/struct-32          40.16µ ± 2%   37.76µ ±  1%   -5.98% (p=0.000 n=10)
Unmarshal/ReferenceFile/map-32             60.91µ ± 2%   58.29µ ±  1%   -4.31% (p=0.000 n=10)
Unmarshal/HugoFrontMatter-32               10.63µ ± 3%   10.15µ ±  1%   -4.48% (p=0.000 n=10)
Marshal/SimpleDocument/struct-32           335.5n ± 1%   328.8n ±  1%   -2.01% (p=0.000 n=10)
Marshal/SimpleDocument/map-32              477.4n ± 0%   458.5n ±  0%   -3.96% (p=0.000 n=10)
Marshal/ReferenceFile/struct-32            29.56µ ± 0%   26.89µ ±  0%   -9.03% (p=0.000 n=10)
Marshal/ReferenceFile/map-32               39.33µ ± 0%   36.40µ ±  0%   -7.46% (p=0.000 n=10)
Marshal/HugoFrontMatter-32                 7.001µ ± 0%   6.776µ ±  0%   -3.21% (p=0.000 n=10)
geomean                                    93.72µ        87.52µ         -6.62%

                                   │ go-1.19-bench.txt │           go-1.20-bench.txt           │
                                   │        B/s        │      B/s       vs base                │
UnmarshalDataset/config-32                58.41Mi ± 1%   58.14Mi ±  0%        ~ (p=0.315 n=10)
UnmarshalDataset/canada-32                29.15Mi ± 2%   33.82Mi ±  2%  +16.01% (p=0.000 n=10)
UnmarshalDataset/citm_catalog-32          21.96Mi ± 3%   25.11Mi ±  1%  +14.33% (p=0.000 n=10)
UnmarshalDataset/twitter-32               46.56Mi ± 2%   57.87Mi ± 12%  +24.30% (p=0.000 n=10)
UnmarshalDataset/code-32                  34.02Mi ± 3%   33.82Mi ±  0%        ~ (p=0.542 n=10)
UnmarshalDataset/example-32               55.68Mi ± 2%   59.01Mi ±  1%   +6.00% (p=0.000 n=10)
Unmarshal/SimpleDocument/struct-32        20.42Mi ± 1%   21.94Mi ±  0%   +7.47% (p=0.000 n=10)
Unmarshal/SimpleDocument/map-32           14.56Mi ± 0%   15.45Mi ±  0%   +6.09% (p=0.000 n=10)
Unmarshal/ReferenceFile/struct-32         124.5Mi ± 2%   132.4Mi ±  1%   +6.35% (p=0.000 n=10)
Unmarshal/ReferenceFile/map-32            82.05Mi ± 2%   85.75Mi ±  1%   +4.51% (p=0.000 n=10)
Unmarshal/HugoFrontMatter-32              48.99Mi ± 3%   51.29Mi ±  1%   +4.69% (p=0.000 n=10)
Marshal/SimpleDocument/struct-32          34.11Mi ± 1%   34.80Mi ±  1%   +2.04% (p=0.000 n=10)
Marshal/SimpleDocument/map-32             23.97Mi ± 0%   24.96Mi ±  0%   +4.12% (p=0.000 n=10)
Marshal/ReferenceFile/struct-32           66.36Mi ± 0%   72.95Mi ±  0%   +9.93% (p=0.000 n=10)
Marshal/ReferenceFile/map-32              48.64Mi ± 0%   52.56Mi ±  0%   +8.06% (p=0.000 n=10)
Marshal/HugoFrontMatter-32                71.25Mi ± 0%   73.61Mi ±  0%   +3.32% (p=0.000 n=10)
geomean                                   41.96Mi        44.93Mi         +7.09%

                                   │ go-1.19-bench.txt │           go-1.20-bench.txt           │
                                   │       B/op        │     B/op      vs base                 │
UnmarshalDataset/config-32                5.593Mi ± 0%   5.502Mi ± 0%  -1.62% (p=0.000 n=10)
UnmarshalDataset/canada-32                79.19Mi ± 0%   76.31Mi ± 0%  -3.64% (p=0.000 n=10)
UnmarshalDataset/citm_catalog-32          33.12Mi ± 0%   32.91Mi ± 0%  -0.64% (p=0.000 n=10)
UnmarshalDataset/twitter-32               12.09Mi ± 0%   12.07Mi ± 0%  -0.15% (p=0.000 n=10)
UnmarshalDataset/code-32                  21.14Mi ± 0%   20.29Mi ± 0%  -4.02% (p=0.000 n=10)
UnmarshalDataset/example-32               181.8Ki ± 0%   181.4Ki ± 0%  -0.22% (p=0.000 n=10)
Unmarshal/SimpleDocument/struct-32          805.0 ± 0%     805.0 ± 0%       ~ (p=1.000 n=10) ¹
Unmarshal/SimpleDocument/map-32           1.106Ki ± 0%   1.106Ki ± 0%       ~ (p=1.000 n=10) ¹
Unmarshal/ReferenceFile/struct-32         20.44Ki ± 0%   20.01Ki ± 0%  -2.11% (p=0.000 n=10)
Unmarshal/ReferenceFile/map-32            37.36Ki ± 0%   36.91Ki ± 0%  -1.20% (p=0.000 n=10)
Unmarshal/HugoFrontMatter-32              7.267Ki ± 0%   7.267Ki ± 0%       ~ (p=1.000 n=10) ¹
Marshal/SimpleDocument/struct-32            240.0 ± 0%     240.0 ± 0%       ~ (p=1.000 n=10) ¹
Marshal/SimpleDocument/map-32               272.0 ± 0%     272.0 ± 0%       ~ (p=1.000 n=10) ¹
Marshal/ReferenceFile/struct-32           27.64Ki ± 0%   27.64Ki ± 0%       ~ (p=1.000 n=10) ¹
Marshal/ReferenceFile/map-32              27.28Ki ± 0%   27.28Ki ± 0%       ~ (p=1.000 n=10) ¹
Marshal/HugoFrontMatter-32                5.672Ki ± 0%   5.672Ki ± 0%       ~ (p=1.000 n=10) ¹
geomean                                   74.92Ki        74.28Ki       -0.86%
¹ all samples are equal

                                   │ go-1.19-bench.txt │           go-1.20-bench.txt           │
                                   │     allocs/op     │  allocs/op   vs base                  │
UnmarshalDataset/config-32                 226.9k ± 0%   219.2k ± 0%   -3.39% (p=0.000 n=10)
UnmarshalDataset/canada-32                 781.5k ± 0%   670.4k ± 0%  -14.22% (p=0.000 n=10)
UnmarshalDataset/citm_catalog-32           192.4k ± 0%   178.0k ± 0%   -7.48% (p=0.000 n=10)
UnmarshalDataset/twitter-32                56.95k ± 0%   54.84k ± 0%   -3.71% (p=0.000 n=10)
UnmarshalDataset/code-32                   1.052M ± 0%   1.001M ± 0%   -4.88% (p=0.000 n=10)
UnmarshalDataset/example-32                1.362k ± 0%   1.306k ± 0%   -4.11% (p=0.000 n=10)
Unmarshal/SimpleDocument/struct-32          9.000 ± 0%    9.000 ± 0%        ~ (p=1.000 n=10) ¹
Unmarshal/SimpleDocument/map-32             13.00 ± 0%    13.00 ± 0%        ~ (p=1.000 n=10) ¹
Unmarshal/ReferenceFile/struct-32           183.0 ± 0%    160.0 ± 0%  -12.57% (p=0.000 n=10)
Unmarshal/ReferenceFile/map-32              642.0 ± 0%    619.0 ± 0%   -3.58% (p=0.000 n=10)
Unmarshal/HugoFrontMatter-32                141.0 ± 0%    141.0 ± 0%        ~ (p=1.000 n=10) ¹
Marshal/SimpleDocument/struct-32            8.000 ± 0%    8.000 ± 0%        ~ (p=1.000 n=10) ¹
Marshal/SimpleDocument/map-32               9.000 ± 0%    9.000 ± 0%        ~ (p=1.000 n=10) ¹
Marshal/ReferenceFile/struct-32             317.0 ± 0%    317.0 ± 0%        ~ (p=1.000 n=10) ¹
Marshal/ReferenceFile/map-32                429.0 ± 0%    429.0 ± 0%        ~ (p=1.000 n=10) ¹
Marshal/HugoFrontMatter-32                  85.00 ± 0%    85.00 ± 0%        ~ (p=1.000 n=10) ¹
geomean                                    1.098k        1.060k        -3.48%
¹ all samples are equal

pkg: github.com/pelletier/go-toml/v2/unstable
                                       │ go-1.19-bench.txt │          go-1.20-bench.txt          │
                                       │      sec/op       │   sec/op     vs base                │
ScanComments/1kValid-32                        1.970µ ± 1%   1.974µ ± 4%        ~ (p=0.054 n=10)
ScanComments/1MValid-32                        2.012m ± 1%   2.053m ± 2%   +2.01% (p=0.029 n=10)
ScanComments/10ValidUtf8-32                    14.44n ± 1%   15.28n ± 1%   +5.85% (p=0.000 n=10)
ScanComments/1kValidUtf8-32                    1.654µ ± 2%   1.686µ ± 2%        ~ (p=0.158 n=10)
ScanComments/1MValidUtf8-32                    1.686m ± 1%   1.686m ± 2%        ~ (p=0.529 n=10)
ScanComments/10Valid-32                        23.45n ± 7%   24.60n ± 2%   +4.90% (p=0.017 n=10)
ParseLiteralStringValid/10Valid-32             24.19n ± 3%   24.00n ± 3%        ~ (p=0.101 n=10)
ParseLiteralStringValid/1kValid-32             2.030µ ± 2%   2.010µ ± 2%        ~ (p=0.172 n=10)
ParseLiteralStringValid/1MValid-32             2.044m ± 2%   2.011m ± 2%   -1.60% (p=0.009 n=10)
ParseLiteralStringValid/10ValidUtf8-32         15.44n ± 2%   14.99n ± 2%   -2.95% (p=0.000 n=10)
ParseLiteralStringValid/1kValidUtf8-32         1.670µ ± 4%   1.635µ ± 2%   -2.10% (p=0.001 n=10)
ParseLiteralStringValid/1MValidUtf8-32         1.693m ± 1%   1.668m ± 3%        ~ (p=0.089 n=10)
ParseBasicStringWithUnicode/4-32               112.5n ± 0%   103.5n ± 0%   -7.96% (p=0.000 n=10)
ParseBasicStringWithUnicode/8-32               176.8n ± 1%   175.5n ± 0%   -0.71% (p=0.000 n=10)
ParseBasicStringsEasy/1-32                     7.322n ± 3%   7.211n ± 0%   -1.51% (p=0.029 n=10)
ParseBasicStringsEasy/4-32                     10.59n ± 2%   10.18n ± 3%   -3.87% (p=0.000 n=10)
ParseBasicStringsEasy/8-32                     15.04n ± 1%   14.34n ± 1%   -4.65% (p=0.000 n=10)
ParseBasicStringsEasy/16-32                    23.46n ± 1%   21.93n ± 3%   -6.52% (p=0.000 n=10)
ParseBasicStringsEasy/21-32                    30.72n ± 1%   27.45n ± 2%  -10.64% (p=0.000 n=10)
geomean                                        649.4n        638.3n        -1.71%

                                       │ go-1.19-bench.txt │          go-1.20-bench.txt           │
                                       │        B/s        │     B/s       vs base                │
ScanComments/1kValid-32                       497.2Mi ± 1%   496.1Mi ± 3%        ~ (p=0.063 n=10)
ScanComments/1MValid-32                       496.9Mi ± 1%   487.2Mi ± 2%   -1.97% (p=0.028 n=10)
ScanComments/10ValidUtf8-32                   859.0Mi ± 1%   811.3Mi ± 1%   -5.55% (p=0.000 n=10)
ScanComments/1kValidUtf8-32                   592.1Mi ± 2%   581.1Mi ± 2%        ~ (p=0.165 n=10)
ScanComments/1MValidUtf8-32                   593.1Mi ± 1%   593.0Mi ± 2%        ~ (p=0.529 n=10)
ScanComments/10Valid-32                       528.7Mi ± 6%   504.0Mi ± 2%   -4.67% (p=0.019 n=10)
ParseLiteralStringValid/10Valid-32            473.1Mi ± 3%   476.9Mi ± 3%        ~ (p=0.105 n=10)
ParseLiteralStringValid/1kValid-32            482.2Mi ± 2%   486.9Mi ± 2%        ~ (p=0.165 n=10)
ParseLiteralStringValid/1MValid-32            489.3Mi ± 2%   497.2Mi ± 1%   +1.63% (p=0.009 n=10)
ParseLiteralStringValid/10ValidUtf8-32        741.3Mi ± 2%   763.6Mi ± 2%   +3.02% (p=0.000 n=10)
ParseLiteralStringValid/1kValidUtf8-32        585.8Mi ± 4%   598.5Mi ± 2%   +2.18% (p=0.001 n=10)
ParseLiteralStringValid/1MValidUtf8-32        590.8Mi ± 1%   599.6Mi ± 3%        ~ (p=0.089 n=10)
ParseBasicStringWithUnicode/4-32              322.2Mi ± 0%   350.1Mi ± 0%   +8.66% (p=0.000 n=10)
ParseBasicStringWithUnicode/8-32              226.6Mi ± 1%   228.2Mi ± 0%   +0.72% (p=0.000 n=10)
ParseBasicStringsEasy/1-32                    390.8Mi ± 3%   396.8Mi ± 0%   +1.53% (p=0.029 n=10)
ParseBasicStringsEasy/4-32                    540.2Mi ± 2%   562.0Mi ± 3%   +4.04% (p=0.000 n=10)
ParseBasicStringsEasy/8-32                    634.0Mi ± 1%   664.7Mi ± 1%   +4.86% (p=0.000 n=10)
ParseBasicStringsEasy/16-32                   731.7Mi ± 1%   782.5Mi ± 3%   +6.95% (p=0.000 n=10)
ParseBasicStringsEasy/21-32                   714.0Mi ± 1%   799.1Mi ± 2%  +11.92% (p=0.000 n=10)
geomean                                       529.9Mi        539.1Mi        +1.73%

                                       │ go-1.19-bench.txt │          go-1.20-bench.txt          │
                                       │       B/op        │    B/op     vs base                 │
ScanComments/1kValid-32                       0.000 ± 0%     0.000 ± 0%       ~ (p=1.000 n=10) ¹
ScanComments/1MValid-32                       0.000 ± 0%     0.000 ± 0%       ~ (p=1.000 n=10) ¹
ScanComments/10ValidUtf8-32                   0.000 ± 0%     0.000 ± 0%       ~ (p=1.000 n=10) ¹
ScanComments/1kValidUtf8-32                   0.000 ± 0%     0.000 ± 0%       ~ (p=1.000 n=10) ¹
ScanComments/1MValidUtf8-32                   0.000 ± 0%     0.000 ± 0%       ~ (p=1.000 n=10) ¹
ScanComments/10Valid-32                       0.000 ± 0%     0.000 ± 0%       ~ (p=1.000 n=10) ¹
ParseLiteralStringValid/10Valid-32            0.000 ± 0%     0.000 ± 0%       ~ (p=1.000 n=10) ¹
ParseLiteralStringValid/1kValid-32            0.000 ± 0%     0.000 ± 0%       ~ (p=1.000 n=10) ¹
ParseLiteralStringValid/1MValid-32            0.000 ± 0%     0.000 ± 0%       ~ (p=1.000 n=10) ¹
ParseLiteralStringValid/10ValidUtf8-32        0.000 ± 0%     0.000 ± 0%       ~ (p=1.000 n=10) ¹
ParseLiteralStringValid/1kValidUtf8-32        0.000 ± 0%     0.000 ± 0%       ~ (p=1.000 n=10) ¹
ParseLiteralStringValid/1MValidUtf8-32        0.000 ± 0%     0.000 ± 0%       ~ (p=1.000 n=10) ¹
ParseBasicStringWithUnicode/4-32              64.00 ± 0%     64.00 ± 0%       ~ (p=1.000 n=10) ¹
ParseBasicStringWithUnicode/8-32              64.00 ± 0%     64.00 ± 0%       ~ (p=1.000 n=10) ¹
ParseBasicStringsEasy/1-32                    0.000 ± 0%     0.000 ± 0%       ~ (p=1.000 n=10) ¹
ParseBasicStringsEasy/4-32                    0.000 ± 0%     0.000 ± 0%       ~ (p=1.000 n=10) ¹
ParseBasicStringsEasy/8-32                    0.000 ± 0%     0.000 ± 0%       ~ (p=1.000 n=10) ¹
ParseBasicStringsEasy/16-32                   0.000 ± 0%     0.000 ± 0%       ~ (p=1.000 n=10) ¹
ParseBasicStringsEasy/21-32                   0.000 ± 0%     0.000 ± 0%       ~ (p=1.000 n=10) ¹
geomean                                                  ²               +0.00%                ²
¹ all samples are equal
² summaries must be >0 to compute geomean

                                       │ go-1.19-bench.txt │          go-1.20-bench.txt          │
                                       │     allocs/op     │ allocs/op   vs base                 │
ScanComments/1kValid-32                       0.000 ± 0%     0.000 ± 0%       ~ (p=1.000 n=10) ¹
ScanComments/1MValid-32                       0.000 ± 0%     0.000 ± 0%       ~ (p=1.000 n=10) ¹
ScanComments/10ValidUtf8-32                   0.000 ± 0%     0.000 ± 0%       ~ (p=1.000 n=10) ¹
ScanComments/1kValidUtf8-32                   0.000 ± 0%     0.000 ± 0%       ~ (p=1.000 n=10) ¹
ScanComments/1MValidUtf8-32                   0.000 ± 0%     0.000 ± 0%       ~ (p=1.000 n=10) ¹
ScanComments/10Valid-32                       0.000 ± 0%     0.000 ± 0%       ~ (p=1.000 n=10) ¹
ParseLiteralStringValid/10Valid-32            0.000 ± 0%     0.000 ± 0%       ~ (p=1.000 n=10) ¹
ParseLiteralStringValid/1kValid-32            0.000 ± 0%     0.000 ± 0%       ~ (p=1.000 n=10) ¹
ParseLiteralStringValid/1MValid-32            0.000 ± 0%     0.000 ± 0%       ~ (p=1.000 n=10) ¹
ParseLiteralStringValid/10ValidUtf8-32        0.000 ± 0%     0.000 ± 0%       ~ (p=1.000 n=10) ¹
ParseLiteralStringValid/1kValidUtf8-32        0.000 ± 0%     0.000 ± 0%       ~ (p=1.000 n=10) ¹
ParseLiteralStringValid/1MValidUtf8-32        0.000 ± 0%     0.000 ± 0%       ~ (p=1.000 n=10) ¹
ParseBasicStringWithUnicode/4-32              1.000 ± 0%     1.000 ± 0%       ~ (p=1.000 n=10) ¹
ParseBasicStringWithUnicode/8-32              1.000 ± 0%     1.000 ± 0%       ~ (p=1.000 n=10) ¹
ParseBasicStringsEasy/1-32                    0.000 ± 0%     0.000 ± 0%       ~ (p=1.000 n=10) ¹
ParseBasicStringsEasy/4-32                    0.000 ± 0%     0.000 ± 0%       ~ (p=1.000 n=10) ¹
ParseBasicStringsEasy/8-32                    0.000 ± 0%     0.000 ± 0%       ~ (p=1.000 n=10) ¹
ParseBasicStringsEasy/16-32                   0.000 ± 0%     0.000 ± 0%       ~ (p=1.000 n=10) ¹
ParseBasicStringsEasy/21-32                   0.000 ± 0%     0.000 ± 0%       ~ (p=1.000 n=10) ¹
geomean                                                  ²               +0.00%                ²
¹ all samples are equal
² summaries must be >0 to compute geomean

@pelletier pelletier added the build Issues regarding go-toml's CI system. label Feb 8, 2023
@pelletier pelletier merged commit b58c20a into v2 Feb 8, 2023
@pelletier pelletier deleted the go-1.20 branch February 8, 2023 23:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
build Issues regarding go-toml's CI system.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Go 1.20
1 participant