Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Benchmarks & Stress Tests

Programs for measuring throughput, latency, and stability under load.

Source: performance/c/, stress/c/

Performance benchmarks

Measure throughput and latency of specific subsystems. All performance binaries are registered as ctest targets and run automatically with yunetas test.

BinaryDescription
perf_tcp_test4TCP echo throughput through the GObj protocol stack (plain). ~35,760 op/sec.
perf_tcp_test5Same as test4 but with timeranger2 persistence. ~23,609 op/sec.
perf_tcps_test4TLS-encrypted TCP echo throughput. ~24,862 op/sec.
perf_tcps_test5TLS + timeranger2 persistence. ~17,406 op/sec.
perf_yev_ping_pongRaw io_uring ping-pong (no GObj overhead). ~173K msg/sec, 177 MB/sec.
perf_yev_ping_pong2Same as ping-pong but including timeranger2 persistence overhead.

Source: performance/c/perf_c_tcp/, performance/c/perf_c_tcps/, performance/c/perf_yev_ping_pong/, performance/c/perf_yev_ping_pong2/

Stress tests

Test scalability and stability under sustained extreme load. Stress tests are run manually — they are not part of ctest.

BinaryDescription
stress_listenTCP server that accepts massive concurrent connections (tested up to 1.5M). Tracks connection/message metrics and resource usage. Architecture: C_LISTENC_IOGATEC_TCP_S → 11,000 pre-allocated C_CHANNELC_PROT_TCP4HC_TCP.

Companion Node.js scripts for generating load:

ScriptDescription
stress-connections.jsConnection load generator.
stress-traffic.jsMessage traffic generator.

Source: stress/c/listen/

Build flags

Both directories are enabled by default via CMake options in the root CMakeLists.txt:

option(ENABLE_PERFORMANCE "Build performance" ON)
option(ENABLE_STRESS      "Build stress"      ON)

Pass -DENABLE_PERFORMANCE=OFF or -DENABLE_STRESS=OFF to skip them.