docs: the sample budget in samples per signal, the memory limit and the planner probe lines
Converts every --buffer-mb / buffer_mb mention to --buffer-samples / buffer_samples, records the unit change as a deviation (README, SPECS, CLAUDE.md), documents the buffer: and planner: dump lines and the new Preferences row, and updates the help pages and the help-shot script. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
1 parent
034c82f7d7
commit
1627abcd4a
19 files changed
+166
-93
No files matched your search
@@ -20,7 +20,7 @@ Part of [CLAUDE.md](../../CLAUDE.md). These are rules that cost a defect to lear
|
||||
comparison on purpose: it is not a size, but it is what the slots *mean*, and keeping samples
|
||||
under a changed `base_dt` would re-date the whole ring.
|
||||
**Construction is the cost.** A `RingBuffer<T>` holds a `std::vector<std::atomic<T>>`, which is
|
||||
value-initialised, so making a store touches every byte of `--buffer-mb` — about a second per
|
||||
value-initialised, so making a store touches every byte of the planned rings — about a second per
|
||||
gigabyte, mostly first-touch page faults — while `reset()` is one relaxed store per ring plus an
|
||||
`invalidate()` and an epoch back to zero. It must leave nothing of the old history behind, which
|
||||
is why it clears the time ring, the absolute-time ring, every value ring, and both the published
|
||||
@@ -65,8 +65,8 @@ Part of [CLAUDE.md](../../CLAUDE.md). These are rules that cost a defect to lear
|
||||
trade and is why the status line's `rate` field is worth reading.
|
||||
- **A file is ingested too, so the loader decimates by the same factor.** `load_waveform_into_model()`
|
||||
sets the target span to the recording's own length and enables every column, and the plan that
|
||||
comes back may well decimate: 20 s of 10 channels at 500 kS/s is 480 MB of rings, and the budget is
|
||||
`--buffer-mb`. The loader therefore reads `partition().time_stride` **after** the enables and pushes
|
||||
comes back may well decimate: 20 s of 10 channels at 500 kS/s is 10 M samples a channel, and the budget is
|
||||
`--buffer-samples` (rounded down to a power of two, 8.39 M by default). The loader therefore reads `partition().time_stride` **after** the enables and pushes
|
||||
one slot per that many rows, carrying the group's mean at the group's mean stamp — the packet path's
|
||||
filter, written a second time because a file does not arrive in packets. Pushing every row instead
|
||||
overruns the ring and leaves the file as **its own tail**, with nothing to say so: a 20 s event
|
||||
|
||||
Reference in new issue
Block a user