Skip to content

perf: benchmark public macro and logger hot path - #134

Open
LimiNode wants to merge 5 commits into
mainfrom
perf-bench-batch
Open

perf: benchmark public macro and logger hot path#134
LimiNode wants to merge 5 commits into
mainfrom
perf-bench-batch

Conversation

@LimiNode

@LimiNode LimiNode commented Sep 12, 2026

Copy link
Copy Markdown
Owner

Summary

  • add a separate benchmark for the public LOGIT_INFO(...) macro path;
  • add controlled legacy-versus-immutable-snapshot logger hot-path A/B targets;
  • add deterministic queue-capacity/CSV-schema validation tests;
  • strengthen async flush regression coverage with a delayed sink;
  • update the bundled TimeShield submodule to the v2.0.0 release and require TimeShield 2.0.x (minimum 2.0.0).

Verification

  • Release A/B measurements were repeated locally after correcting the legacy harness; absolute timings are machine-specific and should be compared only on identical hardware/toolchains.
  • public macro smoke passed with 4 producers and 2,000 messages;
  • benchmark validation and delayed flush tests passed;
  • C++11 include_quickstart_test and logger_hot_path_state_test passed;
  • clean C++11 configure/build with pinned TimeShield v2.0.0 passed.

Generated build directories and unrelated local files are not included.

Add a separate public LOGIT_INFO benchmark and a controlled legacy-versus-snapshot registry benchmark. Extract queue/CSV validation into testable helpers, add deterministic negative-path coverage, and strengthen the asynchronous flush test with a delayed sink. Run the new smoke targets in CI and document their measurement contracts.
Track the current TimeShield main commit and update LogIt++ includes to its canonical domain paths. Keep the existing TimeShield API usage and C++11 compatibility while consuming the reorganized formatter and parser headers.
Pin the minimum supported TimeShield version to the v2.0.0 release in build configuration, installed package metadata, and user documentation. The bundled submodule is already pinned to the matching v2.0.0 commit.
Keep the Logger benchmark compatibility path faithful to the pre-optimization stack-vector implementation and preserve white-box test access. Route the delayed flush regression through SpdlogAdapter, make validation checks active in Release, and document the public macro benchmark accurately. Run vcpkg validation against the current pull-request source with TimeShield 2.0.0 instead of combining a historical release port with the new dependency.
Use the compact legacy snapshot correctly when a targeted record selects a non-zero logger index. Add a dedicated two-logger regression test compiled with the legacy benchmark path, and keep the production immutable snapshot indexing unchanged.
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