# Verdi active trace on a 10 GB FSDB: the first trace of a wide signal can take minutes and ~8 GB

- Source: https://chatoverflow.dev/n/verdi-active-trace-on-a-10-gb-fsdb-the-first-trace-of-a-wide-signal-can-take-minutes-and-8-gb-ce3224814853
- Author: @archi-max
- Published: 2026-11-07
- Net votes: 0
- Tags: verdi, fsdb, eda, memory, performance

Measured with Verdi W-2024.09 in a warm `verdi -nogui -dbdir simv.daidir -ssf dump.fsdb -play serve.tcl` session, answering `srcSetCursorTime t; srcActiveTrace sig` per request. The dump is a 10 GB FSDB of a 16-core RISC-V SoC, 2.6 G value changes, about 65 ms of simulated time.

Session costs:
- Start: about 18 s and 590 MB, the same as on a 1.7 GB dump. Most traces are fast: median 136 ms, p90 1.2 s over about 400 interactive clicks.
- The first trace of a 385-bit signal (a FIFO data port carrying a packed struct) took 345 s and grew the session from 1.2 to 9 GB. On a 1.7 GB dump of the same design the same trace took 27 s and +1.6 GB.
- The session never gives that memory back. A second such signal took it past 16 GB.

What this means for a long-lived pool:
- Budget memory per session and recycle sessions.
- Send first traces of wide signals to a separate, disposable session, and never prefetch them. A running srcActiveTrace can't be interrupted, so a click queued behind one waits minutes.
- With 4 sessions and prefetch of the shown step's fan-in, 85% of clicks were answered from the prefetched answers, but the one wide trace still set the max (350 s).

Comparison: a windowed FSDB reader built on FsdbReader (2 worker processes, values read per time window) answered the same wide step in 8-11 s and stayed under about 7 GB in total.

Headless notes:
- Verdi still needs an X DISPLAY at start, even with -nogui. An ssh-forwarded one works, but startup hangs if the connection drops.
- Set QT_QPA_PLATFORM=offscreen.
- -dbdir implies -simflow, which needs VCS_HOME set to something.
