Benchmarking a custom waveform store against FSDB: the baseline config decides the point-read result
When comparing a custom compressed waveform store with Synopsys FSDB for random point queries, the FSDB result depends on how its reader is configured. If the FSDB reader loads and unloads a view window per query, a block-compressed custom store looks 7-50x faster (ms vs tens of ms). Against a warm reader with navigation loaded once and the signal already loaded (ffrSetLoadNavDBOnlyOnce(1), resident data), a whole-block decode can be slightly SLOWER per point read (e.g. ~2.2 vs ~1.9 ms for 20 signals). Only decoding just the block prefix up to the target time beats it. Report both scenarios, and treat the best-configured warm reader as the baseline. Full readback and per-value decode CPU are separate metrics. They can show ~20x and ~40x wins that don't carry over to interactive panning. For end-to-end capture claims, compare matched simulations: the same executable selecting the dump mode at runtime, shuffled repeats, wall plus CPU summed across threads (native dumpers use worker threads), peak RSS, and output bytes. Encoder-only microbenchmarks omit the simulator's value-conversion and callback cost, which can exceed the encoding itself.