Skip to content

Conversation

@tigrannajaryan
Copy link
Collaborator

Instead of showing total byte sizes charts now show bytes per datapoint or per span, which is easier to compare for different datasets.

@github-actions
Copy link

github-actions bot commented Feb 7, 2026

Benchmark Result

Benchmark diff with base branch
goos: linux
goarch: amd64
pkg: github.com/splunk/stef/benchmarks
cpu: Intel(R) Xeon(R) Platinum 8370C CPU @ 2.80GHz
                                                 │ bench-main.txt │            bench-new.txt            │
                                                 │     sec/op     │    sec/op     vs base               │
SerializeNative/STEF/serialize-4                     8.240m ± 13%   9.916m ± 12%  +20.34% (p=0.009 n=6)
SerializeNative/STEFU/serialize-4                    31.49m ±  2%   31.44m ±  2%        ~ (p=0.485 n=6)
DeserializeNative/STEF/deser-4                       2.526m ±  0%   2.528m ±  0%        ~ (p=0.485 n=6)
DeserializeNative/STEFU/deser-4                      7.367m ±  0%   7.453m ±  2%        ~ (p=0.132 n=6)
SerializeFromPdata/STEF/serialize-4                  124.9m ±  5%   128.0m ±  4%        ~ (p=0.132 n=6)
SerializeFromPdata/STEFU/serialize-4                 31.11m ±  1%   31.68m ±  1%   +1.83% (p=0.004 n=6)
DeserializeToPdata/STEF/deserialize-4                47.32m ±  1%   47.57m ±  1%        ~ (p=0.093 n=6)
DeserializeToPdata/STEFU/deserialize-4               63.59m ±  1%   64.10m ±  2%        ~ (p=0.180 n=6)
STEFReaderRead-4                                     2.617m ±  1%   2.618m ±  3%        ~ (p=0.394 n=6)
STEFSerializeMultipart/astronomy-otelmetrics-4        3.198 ± 22%    3.216 ± 23%        ~ (p=1.000 n=6)
STEFDeserializeMultipart/astronomy-otelmetrics-4     73.19m ± 16%   71.15m ± 18%        ~ (p=0.818 n=6)
ReadSTEF-4                                           2.667m ±  1%   2.658m ±  2%        ~ (p=0.818 n=6)
ReadSTEFZ-4                                          3.633m ±  3%   3.434m ±  2%   -5.48% (p=0.002 n=6)
ReadSTEFZWriteSTEF-4                                 7.910m ±  2%   7.534m ±  2%   -4.75% (p=0.002 n=6)
geomean                                              20.70m         20.88m         +0.87%

                                                 │ bench-main.txt │            bench-new.txt            │
                                                 │   sec/point    │  sec/point    vs base               │
SerializeNative/STEF/serialize-4                     123.2n ± 13%   148.3n ± 12%  +20.32% (p=0.009 n=6)
SerializeNative/STEFU/serialize-4                    470.9n ±  2%   470.2n ±  2%        ~ (p=0.589 n=6)
DeserializeNative/STEF/deser-4                       37.77n ±  0%   37.80n ±  0%        ~ (p=0.504 n=6)
DeserializeNative/STEFU/deser-4                      110.2n ±  0%   111.5n ±  2%        ~ (p=0.113 n=6)
SerializeFromPdata/STEF/serialize-4                  1.868µ ±  5%   1.914µ ±  4%        ~ (p=0.132 n=6)
SerializeFromPdata/STEFU/serialize-4                 465.3n ±  1%   474.0n ±  1%   +1.87% (p=0.009 n=6)
DeserializeToPdata/STEF/deserialize-4                707.9n ±  1%   711.5n ±  1%        ~ (p=0.119 n=6)
DeserializeToPdata/STEFU/deserialize-4               951.2n ±  1%   958.5n ±  2%        ~ (p=0.180 n=6)
STEFReaderRead-4                                     39.15n ±  1%   39.16n ±  3%        ~ (p=0.418 n=6)
STEFSerializeMultipart/astronomy-otelmetrics-4       4.064µ ± 22%   4.088µ ± 23%        ~ (p=1.000 n=6)
STEFDeserializeMultipart/astronomy-otelmetrics-4     93.02n ± 16%   90.43n ± 18%        ~ (p=0.818 n=6)
ReadSTEF-4                                           39.91n ±  1%   39.78n ±  2%        ~ (p=0.818 n=6)
ReadSTEFZ-4                                          54.38n ±  3%   51.40n ±  2%   -5.47% (p=0.002 n=6)
ReadSTEFZWriteSTEF-4                                 118.4n ±  2%   112.8n ±  2%   -4.73% (p=0.002 n=6)
geomean                                              217.7n         219.6n         +0.87%

                                                 │ bench-main.txt │            bench-new.txt             │
                                                 │      B/op      │     B/op      vs base                │
SerializeNative/STEF/serialize-4                     3.338Mi ± 0%   3.338Mi ± 0%       ~ (p=0.781 n=6)
SerializeNative/STEFU/serialize-4                    7.557Mi ± 0%   7.557Mi ± 0%       ~ (p=0.675 n=6)
DeserializeNative/STEF/deser-4                       951.4Ki ± 0%   951.4Ki ± 0%       ~ (p=1.000 n=6) ¹
DeserializeNative/STEFU/deser-4                      1.715Mi ± 0%   1.715Mi ± 0%       ~ (p=1.000 n=6) ¹
SerializeFromPdata/STEF/serialize-4                  76.55Mi ± 0%   76.56Mi ± 0%       ~ (p=0.483 n=6)
SerializeFromPdata/STEFU/serialize-4                 7.557Mi ± 0%   7.557Mi ± 0%       ~ (p=0.076 n=6)
DeserializeToPdata/STEF/deserialize-4                31.99Mi ± 0%   31.99Mi ± 0%       ~ (p=0.905 n=6)
DeserializeToPdata/STEFU/deserialize-4               38.88Mi ± 0%   38.88Mi ± 0%       ~ (p=0.167 n=6)
STEFReaderRead-4                                     953.1Ki ± 0%   953.1Ki ± 0%       ~ (p=1.000 n=6)
STEFSerializeMultipart/astronomy-otelmetrics-4       3.385Gi ± 0%   3.384Gi ± 0%       ~ (p=0.485 n=6)
STEFDeserializeMultipart/astronomy-otelmetrics-4     20.30Mi ± 0%   20.30Mi ± 0%       ~ (p=0.814 n=6)
ReadSTEF-4                                           953.2Ki ± 0%   953.2Ki ± 0%       ~ (p=0.848 n=6)
ReadSTEFZ-4                                          10.29Mi ± 0%   10.29Mi ± 0%       ~ (p=0.123 n=6)
ReadSTEFZWriteSTEF-4                                 13.44Mi ± 0%   13.44Mi ± 0%       ~ (p=0.167 n=6)
geomean                                              10.66Mi        10.66Mi       -0.00%
¹ all samples are equal

                                                 │ bench-main.txt │            bench-new.txt            │
                                                 │   allocs/op    │  allocs/op   vs base                │
SerializeNative/STEF/serialize-4                      2.654k ± 0%   2.652k ± 0%       ~ (p=0.781 n=6)
SerializeNative/STEFU/serialize-4                      884.0 ± 0%    884.0 ± 0%       ~ (p=1.000 n=6)
DeserializeNative/STEF/deser-4                         463.0 ± 0%    463.0 ± 0%       ~ (p=1.000 n=6) ¹
DeserializeNative/STEFU/deser-4                        496.0 ± 0%    496.0 ± 0%       ~ (p=1.000 n=6) ¹
SerializeFromPdata/STEF/serialize-4                   134.7k ± 0%   134.7k ± 0%       ~ (p=0.656 n=6)
SerializeFromPdata/STEFU/serialize-4                   885.0 ± 0%    885.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                                       463.0 ± 0%    463.0 ± 0%       ~ (p=1.000 n=6) ¹
STEFSerializeMultipart/astronomy-otelmetrics-4        13.15M ± 0%   13.15M ± 0%       ~ (p=0.818 n=6)
STEFDeserializeMultipart/astronomy-otelmetrics-4      1.956k ± 0%   1.956k ± 0%       ~ (p=1.000 n=6)
ReadSTEF-4                                             464.0 ± 0%    464.0 ± 0%       ~ (p=1.000 n=6) ¹
ReadSTEFZ-4                                            502.0 ± 0%    502.0 ± 0%       ~ (p=1.000 n=6) ¹
ReadSTEFZWriteSTEF-4                                  1.231k ± 0%   1.231k ± 0%       ~ (p=1.000 n=6)
geomean                                               6.304k        6.304k       -0.00%
¹ all samples are equal
Benchmark result
benchstat bench-new.txt
goos: linux
goarch: amd64
pkg: github.com/splunk/stef/benchmarks
cpu: Intel(R) Xeon(R) Platinum 8370C CPU @ 2.80GHz
                                                 │ bench-new.txt │
                                                 │    sec/op     │
SerializeNative/STEF/serialize-4                    9.916m ± 12%
SerializeNative/STEFU/serialize-4                   31.44m ±  2%
DeserializeNative/STEF/deser-4                      2.528m ±  0%
DeserializeNative/STEFU/deser-4                     7.453m ±  2%
SerializeFromPdata/STEF/serialize-4                 128.0m ±  4%
SerializeFromPdata/STEFU/serialize-4                31.68m ±  1%
DeserializeToPdata/STEF/deserialize-4               47.57m ±  1%
DeserializeToPdata/STEFU/deserialize-4              64.10m ±  2%
STEFReaderRead-4                                    2.618m ±  3%
STEFSerializeMultipart/astronomy-otelmetrics-4       3.216 ± 23%
STEFDeserializeMultipart/astronomy-otelmetrics-4    71.15m ± 18%
ReadSTEF-4                                          2.658m ±  2%
ReadSTEFZ-4                                         3.434m ±  2%
ReadSTEFZWriteSTEF-4                                7.534m ±  2%
geomean                                             20.88m

                                                 │ bench-new.txt │
                                                 │   sec/point   │
SerializeNative/STEF/serialize-4                    148.3n ± 12%
SerializeNative/STEFU/serialize-4                   470.2n ±  2%
DeserializeNative/STEF/deser-4                      37.80n ±  0%
DeserializeNative/STEFU/deser-4                     111.5n ±  2%
SerializeFromPdata/STEF/serialize-4                 1.914µ ±  4%
SerializeFromPdata/STEFU/serialize-4                474.0n ±  1%
DeserializeToPdata/STEF/deserialize-4               711.5n ±  1%
DeserializeToPdata/STEFU/deserialize-4              958.5n ±  2%
STEFReaderRead-4                                    39.16n ±  3%
STEFSerializeMultipart/astronomy-otelmetrics-4      4.088µ ± 23%
STEFDeserializeMultipart/astronomy-otelmetrics-4    90.43n ± 18%
ReadSTEF-4                                          39.78n ±  2%
ReadSTEFZ-4                                         51.40n ±  2%
ReadSTEFZWriteSTEF-4                                112.8n ±  2%
geomean                                             219.6n

                                                 │ bench-new.txt │
                                                 │     B/op      │
SerializeNative/STEF/serialize-4                    3.338Mi ± 0%
SerializeNative/STEFU/serialize-4                   7.557Mi ± 0%
DeserializeNative/STEF/deser-4                      951.4Ki ± 0%
DeserializeNative/STEFU/deser-4                     1.715Mi ± 0%
SerializeFromPdata/STEF/serialize-4                 76.56Mi ± 0%
SerializeFromPdata/STEFU/serialize-4                7.557Mi ± 0%
DeserializeToPdata/STEF/deserialize-4               31.99Mi ± 0%
DeserializeToPdata/STEFU/deserialize-4              38.88Mi ± 0%
STEFReaderRead-4                                    953.1Ki ± 0%
STEFSerializeMultipart/astronomy-otelmetrics-4      3.384Gi ± 0%
STEFDeserializeMultipart/astronomy-otelmetrics-4    20.30Mi ± 0%
ReadSTEF-4                                          953.2Ki ± 0%
ReadSTEFZ-4                                         10.29Mi ± 0%
ReadSTEFZWriteSTEF-4                                13.44Mi ± 0%
geomean                                             10.66Mi

                                                 │ bench-new.txt │
                                                 │   allocs/op   │
SerializeNative/STEF/serialize-4                     2.652k ± 0%
SerializeNative/STEFU/serialize-4                     884.0 ± 0%
DeserializeNative/STEF/deser-4                        463.0 ± 0%
DeserializeNative/STEFU/deser-4                       496.0 ± 0%
SerializeFromPdata/STEF/serialize-4                  134.7k ± 0%
SerializeFromPdata/STEFU/serialize-4                  885.0 ± 0%
DeserializeToPdata/STEF/deserialize-4                756.2k ± 0%
DeserializeToPdata/STEFU/deserialize-4               944.9k ± 0%
STEFReaderRead-4                                      463.0 ± 0%
STEFSerializeMultipart/astronomy-otelmetrics-4       13.15M ± 0%
STEFDeserializeMultipart/astronomy-otelmetrics-4     1.956k ± 0%
ReadSTEF-4                                            464.0 ± 0%
ReadSTEFZ-4                                           502.0 ± 0%
ReadSTEFZWriteSTEF-4                                 1.231k ± 0%
geomean                                              6.304k

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Updates the benchmark chart outputs to report normalized sizes (bytes per metric datapoint / bytes per trace span) instead of total bytes, improving comparability across datasets.

Changes:

  • Normalize metric size charts to Bytes/point and trace size charts to Bytes/span (with 1-decimal rounding).
  • Add a shared float rounding helper and adjust chart recording to preserve non-integer values.
  • Keep speed benchmark charts as integer ns/point values by rounding at call sites.

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated 7 comments.

File Description
docs/benchmarks.html Regenerated benchmark charts with per-point/per-span y-axis units and normalized values.
benchmarks/size_test.go Computes point/span counts and records normalized chart values; updates chart axis units.
benchmarks/charts.go Adds roundFloat helper and stops forcing integer rounding in Record.
benchmarks/benchmarks_test.go Rounds Record-based speed metrics now that Record no longer rounds internally.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Instead of showing total byte sizes charts now show bytes per datapoint
or per span, which is easier to compare for different datasets.
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 4 out of 4 changed files in this pull request and generated no new comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

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