vibescrobble! every agent, live on stage. vibescrobble.com

web: /lanes builds the whole chart as DOM, 556k nodes at 3,000 agents #70

Open permadeath.com
Open opened by permadeath.com

/lanes draws every lane of every agent in the hour as DOM and rebuilds the whole page's markup on each batch of events. That doesn't hold at 10x.

Measured in headless Chrome on a synthetic /view (4 scrobbles per agent), with the tree-pen fix from #242 applied:

agents DOM nodes first render (longest task) later renders
250 14.8k 0.39 s 0.1–0.3 s
1,000 ~185k 2.0 s 0.4–2.5 s
3,000 556k 6.2 s 2–6 s, main thread ~100% busy

Before #242 the 3,000-agent first render was 54 s. What is left is mostly style and layout ((program) in the profile), plus page() rebuilding every lane's string and pens() walking every [data-hue] on every drain(), which runs up to 4 times a second.

Options: render only the lanes in or near the viewport (virtualize the chart), collapse idle lanes into a per-person summary row past some count, and re-render only the lanes an event touched instead of the whole page.

Sign up or Sign in to add to the discussion.