Skip to content

Conversation

@tigrannajaryan
Copy link
Collaborator

This changes the API as described in #285 (comment)

The multimap now has Key/Value/SetKey/SetValue methods and the methods on the Elem are removed.

This changes the API as described in #285 (comment)

The multimap now has Key/Value/SetKey/SetValue methods
and the methods on the Elem are removed.
@github-actions
Copy link

Benchmark Result

Benchmark diff with base branch
goos: linux
goarch: amd64
pkg: github.com/splunk/stef/benchmarks
cpu: AMD EPYC 7763 64-Core Processor                
                                                 │ bench-main.txt │           bench-new.txt            │
                                                 │     sec/op     │    sec/op     vs base              │
SerializeNative/STEF/serialize-4                     12.30m ±  4%   11.26m ±  7%  -8.41% (p=0.002 n=6)
SerializeNative/STEFU/serialize-4                    35.65m ±  1%   34.91m ±  2%  -2.07% (p=0.002 n=6)
DeserializeNative/STEF/deser-4                       2.446m ±  2%   2.417m ±  3%       ~ (p=0.240 n=6)
DeserializeNative/STEFU/deser-4                      7.248m ±  1%   7.237m ±  1%       ~ (p=0.589 n=6)
SerializeFromPdata/STEF/serialize-4                  140.2m ±  4%   137.5m ±  6%       ~ (p=0.180 n=6)
SerializeFromPdata/STEFU/serialize-4                 35.66m ±  2%   35.32m ±  2%       ~ (p=0.240 n=6)
DeserializeToPdata/STEF/deserialize-4                47.23m ±  1%   46.66m ±  1%  -1.20% (p=0.041 n=6)
DeserializeToPdata/STEFU/deserialize-4               64.41m ±  1%   64.52m ±  2%       ~ (p=0.937 n=6)
STEFReaderRead-4                                     2.511m ±  1%   2.500m ±  1%       ~ (p=0.937 n=6)
STEFSerializeMultipart/astronomy-otelmetrics-4        3.486 ± 22%    3.540 ± 22%       ~ (p=0.937 n=6)
STEFDeserializeMultipart/astronomy-otelmetrics-4     73.38m ± 14%   74.45m ± 11%       ~ (p=0.394 n=6)
ReadSTEF-4                                           2.577m ±  2%   2.657m ±  2%  +3.13% (p=0.015 n=6)
ReadSTEFZ-4                                          3.295m ±  1%   3.361m ±  4%       ~ (p=0.240 n=6)
ReadSTEFZWriteSTEF-4                                 8.758m ±  2%   8.289m ±  3%  -5.36% (p=0.002 n=6)
geomean                                              21.85m         21.63m        -0.99%

                                                 │ bench-main.txt │           bench-new.txt            │
                                                 │   sec/point    │  sec/point    vs base              │
SerializeNative/STEF/serialize-4                     183.9n ±  5%   168.4n ±  7%  -8.40% (p=0.002 n=6)
SerializeNative/STEFU/serialize-4                    533.1n ±  1%   522.1n ±  2%  -2.05% (p=0.002 n=6)
DeserializeNative/STEF/deser-4                       36.58n ±  2%   36.16n ±  3%       ~ (p=0.240 n=6)
DeserializeNative/STEFU/deser-4                      108.4n ±  1%   108.2n ±  1%       ~ (p=0.584 n=6)
SerializeFromPdata/STEF/serialize-4                  2.097µ ±  4%   2.057µ ±  6%       ~ (p=0.180 n=6)
SerializeFromPdata/STEFU/serialize-4                 533.4n ±  2%   528.2n ±  2%       ~ (p=0.240 n=6)
DeserializeToPdata/STEF/deserialize-4                706.4n ±  1%   698.0n ±  1%  -1.20% (p=0.041 n=6)
DeserializeToPdata/STEFU/deserialize-4               963.4n ±  1%   965.1n ±  2%       ~ (p=0.965 n=6)
STEFReaderRead-4                                     37.55n ±  1%   37.39n ±  1%       ~ (p=0.905 n=6)
STEFSerializeMultipart/astronomy-otelmetrics-4       4.431µ ± 22%   4.500µ ± 22%       ~ (p=0.905 n=6)
STEFDeserializeMultipart/astronomy-otelmetrics-4     93.26n ± 14%   94.62n ± 11%       ~ (p=0.394 n=6)
ReadSTEF-4                                           38.56n ±  2%   39.77n ±  2%  +3.12% (p=0.015 n=6)
ReadSTEFZ-4                                          49.31n ±  1%   50.30n ±  4%       ~ (p=0.240 n=6)
ReadSTEFZWriteSTEF-4                                 131.0n ±  2%   124.0n ±  3%  -5.34% (p=0.002 n=6)
geomean                                              229.8n         227.5n        -0.99%

                                                 │ bench-main.txt │            bench-new.txt             │
                                                 │      B/op      │     B/op      vs base                │
SerializeNative/STEF/serialize-4                     3.349Mi ± 0%   3.346Mi ± 0%       ~ (p=0.141 n=6)
SerializeNative/STEFU/serialize-4                    7.530Mi ± 0%   7.530Mi ± 0%  +0.00% (p=0.002 n=6)
DeserializeNative/STEF/deser-4                       934.4Ki ± 0%   934.4Ki ± 0%       ~ (p=1.000 n=6) ¹
DeserializeNative/STEFU/deser-4                      1.471Mi ± 0%   1.471Mi ± 0%       ~ (p=1.000 n=6)
SerializeFromPdata/STEF/serialize-4                  74.82Mi ± 0%   74.82Mi ± 0%       ~ (p=0.584 n=6)
SerializeFromPdata/STEFU/serialize-4                 7.530Mi ± 0%   7.530Mi ± 0%  +0.00% (p=0.026 n=6)
DeserializeToPdata/STEF/deserialize-4                31.97Mi ± 0%   31.97Mi ± 0%       ~ (p=0.468 n=6)
DeserializeToPdata/STEFU/deserialize-4               38.64Mi ± 0%   38.64Mi ± 0%       ~ (p=0.455 n=6)
STEFReaderRead-4                                     936.2Ki ± 0%   936.2Ki ± 0%       ~ (p=1.000 n=6) ¹
STEFSerializeMultipart/astronomy-otelmetrics-4       3.361Gi ± 0%   3.361Gi ± 0%       ~ (p=0.937 n=6)
STEFDeserializeMultipart/astronomy-otelmetrics-4     20.41Mi ± 0%   20.41Mi ± 0%       ~ (p=0.712 n=6)
ReadSTEF-4                                           936.2Ki ± 0%   936.2Ki ± 0%       ~ (p=0.630 n=6)
ReadSTEFZ-4                                          10.27Mi ± 0%   10.27Mi ± 0%       ~ (p=0.069 n=6)
ReadSTEFZWriteSTEF-4                                 13.43Mi ± 0%   13.43Mi ± 0%       ~ (p=0.370 n=6)
geomean                                              10.47Mi        10.47Mi       -0.01%
¹ all samples are equal

                                                 │ bench-main.txt │            bench-new.txt            │
                                                 │   allocs/op    │  allocs/op   vs base                │
SerializeNative/STEF/serialize-4                      2.666k ± 0%   2.659k ± 0%       ~ (p=0.145 n=6)
SerializeNative/STEFU/serialize-4                      885.0 ± 0%    885.0 ± 0%       ~ (p=1.000 n=6)
DeserializeNative/STEF/deser-4                         465.0 ± 0%    465.0 ± 0%       ~ (p=1.000 n=6) ¹
DeserializeNative/STEFU/deser-4                        469.0 ± 0%    469.0 ± 0%       ~ (p=1.000 n=6) ¹
SerializeFromPdata/STEF/serialize-4                   134.7k ± 0%   134.7k ± 0%       ~ (p=0.455 n=6)
SerializeFromPdata/STEFU/serialize-4                   886.0 ± 0%    886.0 ± 0%       ~ (p=1.000 n=6) ¹
DeserializeToPdata/STEF/deserialize-4                 756.2k ± 0%   756.2k ± 0%       ~ (p=1.000 n=6) ¹
DeserializeToPdata/STEFU/deserialize-4                944.9k ± 0%   944.9k ± 0%       ~ (p=1.000 n=6) ¹
STEFReaderRead-4                                       465.0 ± 0%    465.0 ± 0%       ~ (p=1.000 n=6) ¹
STEFSerializeMultipart/astronomy-otelmetrics-4        13.15M ± 0%   13.15M ± 0%       ~ (p=0.193 n=6)
STEFDeserializeMultipart/astronomy-otelmetrics-4      2.294k ± 0%   2.294k ± 0%       ~ (p=1.000 n=6) ¹
ReadSTEF-4                                             466.0 ± 0%    466.0 ± 0%       ~ (p=1.000 n=6) ¹
ReadSTEFZ-4                                            503.0 ± 0%    503.0 ± 0%       ~ (p=1.000 n=6) ¹
ReadSTEFZWriteSTEF-4                                  1.233k ± 0%   1.233k ± 0%       ~ (p=1.000 n=6)
geomean                                               6.362k        6.361k       -0.02%
¹ all samples are equal
Benchmark result
benchstat bench-new.txt
goos: linux
goarch: amd64
pkg: github.com/splunk/stef/benchmarks
cpu: AMD EPYC 7763 64-Core Processor                
                                                 │ bench-new.txt │
                                                 │    sec/op     │
SerializeNative/STEF/serialize-4                    11.26m ±  7%
SerializeNative/STEFU/serialize-4                   34.91m ±  2%
DeserializeNative/STEF/deser-4                      2.417m ±  3%
DeserializeNative/STEFU/deser-4                     7.237m ±  1%
SerializeFromPdata/STEF/serialize-4                 137.5m ±  6%
SerializeFromPdata/STEFU/serialize-4                35.32m ±  2%
DeserializeToPdata/STEF/deserialize-4               46.66m ±  1%
DeserializeToPdata/STEFU/deserialize-4              64.52m ±  2%
STEFReaderRead-4                                    2.500m ±  1%
STEFSerializeMultipart/astronomy-otelmetrics-4       3.540 ± 22%
STEFDeserializeMultipart/astronomy-otelmetrics-4    74.45m ± 11%
ReadSTEF-4                                          2.657m ±  2%
ReadSTEFZ-4                                         3.361m ±  4%
ReadSTEFZWriteSTEF-4                                8.289m ±  3%
geomean                                             21.63m

                                                 │ bench-new.txt │
                                                 │   sec/point   │
SerializeNative/STEF/serialize-4                    168.4n ±  7%
SerializeNative/STEFU/serialize-4                   522.1n ±  2%
DeserializeNative/STEF/deser-4                      36.16n ±  3%
DeserializeNative/STEFU/deser-4                     108.2n ±  1%
SerializeFromPdata/STEF/serialize-4                 2.057µ ±  6%
SerializeFromPdata/STEFU/serialize-4                528.2n ±  2%
DeserializeToPdata/STEF/deserialize-4               698.0n ±  1%
DeserializeToPdata/STEFU/deserialize-4              965.1n ±  2%
STEFReaderRead-4                                    37.39n ±  1%
STEFSerializeMultipart/astronomy-otelmetrics-4      4.500µ ± 22%
STEFDeserializeMultipart/astronomy-otelmetrics-4    94.62n ± 11%
ReadSTEF-4                                          39.77n ±  2%
ReadSTEFZ-4                                         50.30n ±  4%
ReadSTEFZWriteSTEF-4                                124.0n ±  3%
geomean                                             227.5n

                                                 │ bench-new.txt │
                                                 │     B/op      │
SerializeNative/STEF/serialize-4                    3.346Mi ± 0%
SerializeNative/STEFU/serialize-4                   7.530Mi ± 0%
DeserializeNative/STEF/deser-4                      934.4Ki ± 0%
DeserializeNative/STEFU/deser-4                     1.471Mi ± 0%
SerializeFromPdata/STEF/serialize-4                 74.82Mi ± 0%
SerializeFromPdata/STEFU/serialize-4                7.530Mi ± 0%
DeserializeToPdata/STEF/deserialize-4               31.97Mi ± 0%
DeserializeToPdata/STEFU/deserialize-4              38.64Mi ± 0%
STEFReaderRead-4                                    936.2Ki ± 0%
STEFSerializeMultipart/astronomy-otelmetrics-4      3.361Gi ± 0%
STEFDeserializeMultipart/astronomy-otelmetrics-4    20.41Mi ± 0%
ReadSTEF-4                                          936.2Ki ± 0%
ReadSTEFZ-4                                         10.27Mi ± 0%
ReadSTEFZWriteSTEF-4                                13.43Mi ± 0%
geomean                                             10.47Mi

                                                 │ bench-new.txt │
                                                 │   allocs/op   │
SerializeNative/STEF/serialize-4                     2.659k ± 0%
SerializeNative/STEFU/serialize-4                     885.0 ± 0%
DeserializeNative/STEF/deser-4                        465.0 ± 0%
DeserializeNative/STEFU/deser-4                       469.0 ± 0%
SerializeFromPdata/STEF/serialize-4                  134.7k ± 0%
SerializeFromPdata/STEFU/serialize-4                  886.0 ± 0%
DeserializeToPdata/STEF/deserialize-4                756.2k ± 0%
DeserializeToPdata/STEFU/deserialize-4               944.9k ± 0%
STEFReaderRead-4                                      465.0 ± 0%
STEFSerializeMultipart/astronomy-otelmetrics-4       13.15M ± 0%
STEFDeserializeMultipart/astronomy-otelmetrics-4     2.294k ± 0%
ReadSTEF-4                                            466.0 ± 0%
ReadSTEFZ-4                                           503.0 ± 0%
ReadSTEFZWriteSTEF-4                                 1.233k ± 0%
geomean                                              6.361k

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant