Skip to content

Conversation

@tigrannajaryan
Copy link
Collaborator

reset() is now correctly resetting optional field presence flags.

reset() is now correctly resetting optional field presence flags.
@github-actions
Copy link

github-actions bot commented Dec 8, 2025

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.82m ±  6%   11.19m ±  6%  -12.72% (p=0.002 n=6)
SerializeNative/STEFU/serialize-4                    35.00m ±  2%   35.60m ±  1%   +1.71% (p=0.015 n=6)
DeserializeNative/STEF/deser-4                       2.447m ±  2%   2.500m ±  1%   +2.18% (p=0.002 n=6)
DeserializeNative/STEFU/deser-4                      7.348m ±  1%   7.266m ±  0%   -1.12% (p=0.004 n=6)
SerializeFromPdata/STEF/serialize-4                  139.2m ±  3%   140.7m ±  4%        ~ (p=0.394 n=6)
SerializeFromPdata/STEFU/serialize-4                 34.86m ±  1%   35.49m ±  0%   +1.83% (p=0.002 n=6)
DeserializeToPdata/STEF/deserialize-4                46.62m ±  2%   46.77m ±  1%        ~ (p=0.937 n=6)
DeserializeToPdata/STEFU/deserialize-4               64.42m ±  2%   64.58m ±  1%        ~ (p=0.937 n=6)
STEFReaderRead-4                                     2.505m ±  2%   2.541m ±  1%   +1.43% (p=0.026 n=6)
STEFSerializeMultipart/astronomy-otelmetrics-4        3.444 ± 22%    3.474 ± 20%        ~ (p=0.937 n=6)
STEFDeserializeMultipart/astronomy-otelmetrics-4     77.81m ±  9%   76.46m ± 14%        ~ (p=0.394 n=6)
ReadSTEF-4                                           2.599m ±  1%   2.558m ±  5%        ~ (p=0.065 n=6)
ReadSTEFZ-4                                          3.663m ±  2%   3.247m ±  1%  -11.36% (p=0.002 n=6)
ReadSTEFZWriteSTEF-4                                 7.848m ±  3%   7.778m ±  4%        ~ (p=0.699 n=6)
geomean                                              21.92m         21.58m         -1.52%

                                                 │ bench-main.txt │            bench-new.txt            │
                                                 │   sec/point    │  sec/point    vs base               │
SerializeNative/STEF/serialize-4                     191.7n ±  6%   167.3n ±  6%  -12.71% (p=0.002 n=6)
SerializeNative/STEFU/serialize-4                    523.5n ±  2%   532.5n ±  1%   +1.72% (p=0.015 n=6)
DeserializeNative/STEF/deser-4                       36.60n ±  2%   37.40n ±  1%   +2.17% (p=0.002 n=6)
DeserializeNative/STEFU/deser-4                      109.9n ±  1%   108.7n ±  1%   -1.14% (p=0.006 n=6)
SerializeFromPdata/STEF/serialize-4                  2.083µ ±  3%   2.105µ ±  4%        ~ (p=0.420 n=6)
SerializeFromPdata/STEFU/serialize-4                 521.4n ±  2%   530.8n ±  0%   +1.81% (p=0.002 n=6)
DeserializeToPdata/STEF/deserialize-4                697.3n ±  2%   699.6n ±  1%        ~ (p=0.937 n=6)
DeserializeToPdata/STEFU/deserialize-4               963.7n ±  2%   966.1n ±  1%        ~ (p=0.937 n=6)
STEFReaderRead-4                                     37.48n ±  2%   38.01n ±  1%   +1.41% (p=0.017 n=6)
STEFSerializeMultipart/astronomy-otelmetrics-4       4.378µ ± 22%   4.416µ ± 20%        ~ (p=0.937 n=6)
STEFDeserializeMultipart/astronomy-otelmetrics-4     98.92n ±  9%   97.16n ± 14%        ~ (p=0.394 n=6)
ReadSTEF-4                                           38.91n ±  1%   38.28n ±  5%        ~ (p=0.058 n=6)
ReadSTEFZ-4                                          54.83n ±  2%   48.60n ±  1%  -11.36% (p=0.002 n=6)
ReadSTEFZWriteSTEF-4                                 117.5n ±  3%   116.4n ±  4%        ~ (p=0.699 n=6)
geomean                                              230.5n         227.0n         -1.53%

                                                 │ bench-main.txt │            bench-new.txt             │
                                                 │      B/op      │     B/op      vs base                │
SerializeNative/STEF/serialize-4                     3.352Mi ± 0%   3.346Mi ± 0%  -0.18% (p=0.015 n=6)
SerializeNative/STEFU/serialize-4                    7.530Mi ± 0%   7.530Mi ± 0%       ~ (p=0.446 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.468 n=6)
SerializeFromPdata/STEFU/serialize-4                 7.530Mi ± 0%   7.530Mi ± 0%       ~ (p=0.106 n=6)
DeserializeToPdata/STEF/deserialize-4                31.97Mi ± 0%   31.97Mi ± 0%  +0.00% (p=0.022 n=6)
DeserializeToPdata/STEFU/deserialize-4               38.64Mi ± 0%   38.64Mi ± 0%       ~ (p=0.413 n=6)
STEFReaderRead-4                                     936.2Ki ± 0%   936.2Ki ± 0%       ~ (p=1.000 n=6)
STEFSerializeMultipart/astronomy-otelmetrics-4       3.361Gi ± 0%   3.362Gi ± 0%       ~ (p=0.310 n=6)
STEFDeserializeMultipart/astronomy-otelmetrics-4     20.41Mi ± 0%   20.41Mi ± 0%       ~ (p=1.000 n=6)
ReadSTEF-4                                           936.2Ki ± 0%   936.2Ki ± 0%       ~ (p=0.491 n=6)
ReadSTEFZ-4                                          10.27Mi ± 0%   10.27Mi ± 0%       ~ (p=0.054 n=6)
ReadSTEFZWriteSTEF-4                                 13.43Mi ± 0%   13.43Mi ± 0%       ~ (p=0.911 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.671k ± 0%   2.659k ± 0%  -0.45% (p=0.013 n=6)
SerializeNative/STEFU/serialize-4                      884.5 ± 0%    884.5 ± 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.452 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.258 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.360k       -0.03%
¹ 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.19m ±  6%
SerializeNative/STEFU/serialize-4                   35.60m ±  1%
DeserializeNative/STEF/deser-4                      2.500m ±  1%
DeserializeNative/STEFU/deser-4                     7.266m ±  0%
SerializeFromPdata/STEF/serialize-4                 140.7m ±  4%
SerializeFromPdata/STEFU/serialize-4                35.49m ±  0%
DeserializeToPdata/STEF/deserialize-4               46.77m ±  1%
DeserializeToPdata/STEFU/deserialize-4              64.58m ±  1%
STEFReaderRead-4                                    2.541m ±  1%
STEFSerializeMultipart/astronomy-otelmetrics-4       3.474 ± 20%
STEFDeserializeMultipart/astronomy-otelmetrics-4    76.46m ± 14%
ReadSTEF-4                                          2.558m ±  5%
ReadSTEFZ-4                                         3.247m ±  1%
ReadSTEFZWriteSTEF-4                                7.778m ±  4%
geomean                                             21.58m

                                                 │ bench-new.txt │
                                                 │   sec/point   │
SerializeNative/STEF/serialize-4                    167.3n ±  6%
SerializeNative/STEFU/serialize-4                   532.5n ±  1%
DeserializeNative/STEF/deser-4                      37.40n ±  1%
DeserializeNative/STEFU/deser-4                     108.7n ±  1%
SerializeFromPdata/STEF/serialize-4                 2.105µ ±  4%
SerializeFromPdata/STEFU/serialize-4                530.8n ±  0%
DeserializeToPdata/STEF/deserialize-4               699.6n ±  1%
DeserializeToPdata/STEFU/deserialize-4              966.1n ±  1%
STEFReaderRead-4                                    38.01n ±  1%
STEFSerializeMultipart/astronomy-otelmetrics-4      4.416µ ± 20%
STEFDeserializeMultipart/astronomy-otelmetrics-4    97.16n ± 14%
ReadSTEF-4                                          38.28n ±  5%
ReadSTEFZ-4                                         48.60n ±  1%
ReadSTEFZWriteSTEF-4                                116.4n ±  4%
geomean                                             227.0n

                                                 │ 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.362Gi ± 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                     884.5 ± 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.360k

@tigrannajaryan tigrannajaryan merged commit 17ed38e into main Dec 9, 2025
9 checks passed
@tigrannajaryan tigrannajaryan deleted the tigran/reset-optional-fields branch December 9, 2025 14:12
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.

2 participants