Skip to content

Add a baseline performance test - #150

Merged
ecbadeaux merged 1 commit into
mainfrom
writer-performance-test
Nov 5, 2026
Merged

ecbadeaux merged 1 commit into
mainfrom
writer-performance-test

Conversation

@ecbadeaux

Copy link
Copy Markdown
Contributor

Add a writer performance test

Adds performance_tests/writer_performance_test/, a second performance test that measures recording through the writers across socket writers (UDP, Unix), buffer sizes, thread counts, loads and ways of using a counter. The existing performance_test is unchanged.

How it works

  • The test opens its own local socket in place of spectatord and counts what arrives.
  • Each configuration records in a separate process through the public API (Registry, Config, WriterConfig, Counter), then exits normally so the library flushes.
  • Each configuration is measured three times; the report shows the median and the spread.

What it reports

  • Lines recorded per second, per thread, and speed-up over one thread
  • Time per call: median, 99th percentile, longest
  • Processor time per line
  • Share of recorded lines that arrived, and lines per datagram
  • Under a paced load, the delay from recording a line to its arrival
  • Optional CSV output and comparison against an earlier run (--baseline)

Running it

source venv/bin/activate
BUILD_DIR=cmake-build-release BUILD_TYPE=Release ./build.sh skiptest
./cmake-build-release/performance_tests/writer_performance_test/writer_performance_test --full
The default run takes about 2 minutes, --full about 12 minutes, and --smoke a few seconds. See the README in the folder for options and how to read the report.

@ecbadeaux
ecbadeaux merged commit f484cb3 into main Nov 5, 2026
1 check passed
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