by trishume on 12/5/23, 10:56 PM with 40 comments
by crdavidson on 12/6/23, 9:00 AM
Thankfully, eytzinger-ordered 4-ary trees work totally fine at 165+ fps, even at 3+ billion functions, but I like to read back through that post once in a while just in case I hit that perf wall someday.
Working on timestamp delta-compression at the moment to pack events into much smaller spaces, and hopefully get to 10 billion in 128 GB RAM sometime soon (at least for native builds of Spall).
Thanks for the kick to keep on pushing!
by criddell on 12/6/23, 10:41 AM
by Veserv on 12/6/23, 6:45 AM
Missing out on one of the most useful areas for tracing which is time travel debugging. There are a number of interesting solutions there taking advantage of hardware trace, instrumentation, and deterministic replay. Even better when you get full visualization integration so you can do something like zoom in from a multiple minute trace onto a suspicious 200 ns function and then double click on it which will then backstep to that exact point in your program with the full reconstruction of memory at that time so you can debug from that point.
by jeffrallen on 12/6/23, 7:17 AM
by kqr on 12/6/23, 9:12 AM
Wow. This is some great engineering. Obviously that's what you'd do, but I'd never think of it in a thousand years!
by ElijahLynn on 12/7/23, 5:34 PM
p.s. I think the blog post could use more screengrabs of the traces. Great first pass at it though, and screengrabs can be added over time!
by felixrieseberg on 12/6/23, 7:47 PM
If anyone has any tips on how to trace JavaScript (not just profile by time, but deterministically measure the cost of it in CI), I'd love to hear tips!
by zubairq on 12/6/23, 11:03 AM