Skip to content

Update benchmark charts to use unit sizes#355

Merged
tigrannajaryan merged 1 commit intomainfrom
tigran/chars-bytes-per-point
Feb 15, 2026
Merged

Update benchmark charts to use unit sizes#355
tigrannajaryan merged 1 commit intomainfrom
tigran/chars-bytes-per-point

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: AMD EPYC 7763 64-Core Processor                
                                                 │ bench-main.txt │            bench-new.txt            │
                                                 │     sec/op     │    sec/op     vs base               │
SerializeNative/STEF/serialize-4                    12.099m ± 10%   7.904m ±  5%  -34.67% (p=0.002 n=6)
SerializeNative/STEFU/serialize-4                    35.32m ±  2%   34.90m ±  3%        ~ (p=0.180 n=6)
DeserializeNative/STEF/deser-4                       2.409m ±  1%   2.398m ±  1%        ~ (p=0.589 n=6)
DeserializeNative/STEFU/deser-4                      7.277m ±  1%   7.193m ±  1%   -1.15% (p=0.004 n=6)
SerializeFromPdata/STEF/serialize-4                  136.8m ±  3%   134.9m ±  1%   -1.41% (p=0.026 n=6)
SerializeFromPdata/STEFU/serialize-4                 35.05m ±  1%   34.72m ±  2%        ~ (p=0.240 n=6)
DeserializeToPdata/STEF/deserialize-4                46.04m ±  1%   45.81m ±  1%        ~ (p=0.240 n=6)
DeserializeToPdata/STEFU/deserialize-4               63.03m ±  3%   63.74m ±  3%   +1.13% (p=0.041 n=6)
STEFReaderRead-4                                     2.510m ±  2%   2.499m ±  0%        ~ (p=0.485 n=6)
STEFSerializeMultipart/astronomy-otelmetrics-4        3.345 ±  3%    3.382 ±  3%        ~ (p=0.240 n=6)
STEFDeserializeMultipart/astronomy-otelmetrics-4     74.12m ± 11%   77.44m ± 15%        ~ (p=0.485 n=6)
ReadSTEF-4                                           2.621m ±  0%   2.633m ±  1%        ~ (p=0.589 n=6)
ReadSTEFZ-4                                          3.387m ±  2%   3.351m ±  1%   -1.06% (p=0.041 n=6)
ReadSTEFZWriteSTEF-4                                 7.909m ±  1%   7.874m ±  3%        ~ (p=0.589 n=6)
geomean                                              21.52m         20.86m         -3.03%

                                                 │ bench-main.txt │            bench-new.txt            │
                                                 │   sec/point    │  sec/point    vs base               │
SerializeNative/STEF/serialize-4                     181.0n ± 10%   118.2n ±  5%  -34.68% (p=0.002 n=6)
SerializeNative/STEFU/serialize-4                    528.2n ±  2%   522.1n ±  3%        ~ (p=0.180 n=6)
DeserializeNative/STEF/deser-4                       36.04n ±  1%   35.88n ±  1%        ~ (p=0.515 n=6)
DeserializeNative/STEFU/deser-4                      108.8n ±  1%   107.5n ±  1%   -1.15% (p=0.004 n=6)
SerializeFromPdata/STEF/serialize-4                  2.047µ ±  3%   2.019µ ±  1%   -1.34% (p=0.026 n=6)
SerializeFromPdata/STEFU/serialize-4                 524.3n ±  1%   519.5n ±  2%        ~ (p=0.310 n=6)
DeserializeToPdata/STEF/deserialize-4                688.6n ±  1%   685.5n ±  1%        ~ (p=0.240 n=6)
DeserializeToPdata/STEFU/deserialize-4               942.8n ±  3%   954.0n ±  3%   +1.19% (p=0.037 n=6)
STEFReaderRead-4                                     37.54n ±  2%   37.37n ±  0%        ~ (p=0.485 n=6)
STEFSerializeMultipart/astronomy-otelmetrics-4       4.252µ ±  3%   4.298µ ±  3%        ~ (p=0.240 n=6)
STEFDeserializeMultipart/astronomy-otelmetrics-4     94.21n ± 11%   98.42n ± 15%        ~ (p=0.485 n=6)
ReadSTEF-4                                           39.22n ±  0%   39.41n ±  1%        ~ (p=0.511 n=6)
ReadSTEFZ-4                                          50.70n ±  2%   50.16n ±  1%   -1.07% (p=0.037 n=6)
ReadSTEFZWriteSTEF-4                                 118.4n ±  1%   117.9n ±  3%        ~ (p=0.589 n=6)
geomean                                              226.3n         219.5n         -3.02%

                                                 │ bench-main.txt │            bench-new.txt             │
                                                 │      B/op      │     B/op      vs base                │
SerializeNative/STEF/serialize-4                     3.343Mi ± 0%   3.338Mi ± 0%  -0.17% (p=0.002 n=6)
SerializeNative/STEFU/serialize-4                    7.557Mi ± 0%   7.557Mi ± 0%       ~ (p=0.619 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=0.545 n=6)
SerializeFromPdata/STEF/serialize-4                  76.55Mi ± 0%   76.55Mi ± 0%       ~ (p=0.981 n=6)
SerializeFromPdata/STEFU/serialize-4                 7.557Mi ± 0%   7.557Mi ± 0%       ~ (p=0.121 n=6)
DeserializeToPdata/STEF/deserialize-4                31.99Mi ± 0%   31.99Mi ± 0%  -0.00% (p=0.002 n=6)
DeserializeToPdata/STEFU/deserialize-4               38.88Mi ± 0%   38.88Mi ± 0%       ~ (p=1.000 n=6)
STEFReaderRead-4                                     953.1Ki ± 0%   953.1Ki ± 0%       ~ (p=1.000 n=6)
STEFSerializeMultipart/astronomy-otelmetrics-4       3.385Gi ± 0%   3.383Gi ± 0%       ~ (p=0.589 n=6)
STEFDeserializeMultipart/astronomy-otelmetrics-4     20.30Mi ± 0%   20.30Mi ± 0%       ~ (p=0.667 n=6)
ReadSTEF-4                                           953.2Ki ± 0%   953.2Ki ± 0%       ~ (p=0.913 n=6)
ReadSTEFZ-4                                          10.29Mi ± 0%   10.29Mi ± 0%       ~ (p=0.212 n=6)
ReadSTEFZWriteSTEF-4                                 13.44Mi ± 0%   13.44Mi ± 0%       ~ (p=0.372 n=6)
geomean                                              10.66Mi        10.66Mi       -0.02%
¹ all samples are equal

                                                 │ bench-main.txt │            bench-new.txt            │
                                                 │   allocs/op    │  allocs/op   vs base                │
SerializeNative/STEF/serialize-4                      2.663k ± 0%   2.651k ± 0%  -0.43% (p=0.002 n=6)
SerializeNative/STEFU/serialize-4                      885.0 ± 0%    884.5 ± 0%       ~ (p=0.545 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.405 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                                       463.0 ± 0%    463.0 ± 0%       ~ (p=1.000 n=6) ¹
STEFSerializeMultipart/astronomy-otelmetrics-4        13.15M ± 0%   13.15M ± 0%       ~ (p=0.777 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.307k        6.305k       -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                    7.904m ±  5%
SerializeNative/STEFU/serialize-4                   34.90m ±  3%
DeserializeNative/STEF/deser-4                      2.398m ±  1%
DeserializeNative/STEFU/deser-4                     7.193m ±  1%
SerializeFromPdata/STEF/serialize-4                 134.9m ±  1%
SerializeFromPdata/STEFU/serialize-4                34.72m ±  2%
DeserializeToPdata/STEF/deserialize-4               45.81m ±  1%
DeserializeToPdata/STEFU/deserialize-4              63.74m ±  3%
STEFReaderRead-4                                    2.499m ±  0%
STEFSerializeMultipart/astronomy-otelmetrics-4       3.382 ±  3%
STEFDeserializeMultipart/astronomy-otelmetrics-4    77.44m ± 15%
ReadSTEF-4                                          2.633m ±  1%
ReadSTEFZ-4                                         3.351m ±  1%
ReadSTEFZWriteSTEF-4                                7.874m ±  3%
geomean                                             20.86m

                                                 │ bench-new.txt │
                                                 │   sec/point   │
SerializeNative/STEF/serialize-4                    118.2n ±  5%
SerializeNative/STEFU/serialize-4                   522.1n ±  3%
DeserializeNative/STEF/deser-4                      35.88n ±  1%
DeserializeNative/STEFU/deser-4                     107.5n ±  1%
SerializeFromPdata/STEF/serialize-4                 2.019µ ±  1%
SerializeFromPdata/STEFU/serialize-4                519.5n ±  2%
DeserializeToPdata/STEF/deserialize-4               685.5n ±  1%
DeserializeToPdata/STEFU/deserialize-4              954.0n ±  3%
STEFReaderRead-4                                    37.37n ±  0%
STEFSerializeMultipart/astronomy-otelmetrics-4      4.298µ ±  3%
STEFDeserializeMultipart/astronomy-otelmetrics-4    98.42n ± 15%
ReadSTEF-4                                          39.41n ±  1%
ReadSTEFZ-4                                         50.16n ±  1%
ReadSTEFZWriteSTEF-4                                117.9n ±  3%
geomean                                             219.5n

                                                 │ 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.55Mi ± 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.383Gi ± 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.651k ± 0%
SerializeNative/STEFU/serialize-4                     884.5 ± 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                  886.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.305k

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.

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.

Instead of showing total byte sizes charts now show bytes per datapoint
or per span, which is easier to compare for different datasets.
@tigrannajaryan tigrannajaryan force-pushed the tigran/chars-bytes-per-point branch from 7f9d4dc to 4fd7d32 Compare February 15, 2026 05:50
@tigrannajaryan tigrannajaryan merged commit 12e1665 into main Feb 15, 2026
10 checks passed
@tigrannajaryan tigrannajaryan deleted the tigran/chars-bytes-per-point branch February 15, 2026 23:16
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.

3 participants