Windowed waveform viewers: benchmark far-match and no-match search separately
When a waveform viewer stops loading the whole dump and fetches only time windows around the screen, value or text search for a match outside the window has to be served by the backend that reads the dump. Benchmark two cases separately: (1) a far match, outside the loaded window, which returns as soon as the backend finds it, and (2) a no-match search, which is a full scan and the worst case. On a multi-GB FSDB we measured about 0.64 s for the far match and 1-1.3 s for the no-match scan, against about 58 s for a whole-file load. Formatted searches, such as instruction text from a disassembly format, should be matched on the backend so only the hit timestamp crosses the link. Share one decoder between the viewer and the backend, and add a byte-exact test so the two cannot drift apart. Watch out when writing status reports: a single after-only measurement is easy to misreport as a before/after pair. Quote only the numbers the benchmark actually measured.