[I'm the author] Spall is a web-accessible profiler that I made to help my web-dev friends load gigabyte+ JSON traces without lunch-break-long load times. Recently, Spall got experimental support for auto-tracing with binary traces (along with an in-progress native-port, to give it more memory headroom), which was used to help track down and fix some hard-to-spot lock contention issues in the Odin-language compiler.
I demoed it at the Handmade Seattle conference in October, https://guide.handmade-seattle.com/c/2022/spall/, with a head-to-head against Perfetto, another big web profiler.
I'll be around to answer any questions. Thanks for looking at my project! If you like Spall, you can catch my other projects over at https://colrdavidson.github.io/.
If you happen to be hiring I'd love to hear from you. Looking for something fun and new to do after a long sabbatical, working on cool open-source projects!
by qgc on 1/2/23, 3:58 PM
The comparison with Perfetto in the video is pretty damn impressive. So nice to have another player in the profiler space. Iteration time is unfortunately (and inexplicably) undervalued.
My short time messing around with SpeedScope was more promising, but profiling in general has been pretty painful with all of the tools I've tried that ingest auto-traced input.
You mention in the "For Everyone Else" section that you have an auto-tracer system to instrument all your tracing. Aside from being very handy, how does it compare to [1] which you mention right after?
[1] https://github.com/bvisness/dtrace2spall
by gavinray on 1/2/23, 4:19 PM
I recently read about this on the Odin monthly news, it was super impressive!
In the section of the interview where you talk about the difficulties you had, you discuss the challenges of making Odin work properly on WASM, and how you needed custom memory-management and allocation strategies.
Could you talk some more about that experience and the general process of working with that sort of low-level bit in Odin? I've been experimenting with using Odin to write a DB from scratch.
by jerryu on 1/2/23, 9:44 PM
Web profilers definitely could use some disruption. Congratulations on the release. I am going to forward this to a friend who is actively hiring.
by skytrias on 1/2/23, 4:05 PM
Hyped about the auto-tracing feature! The current version of spall has been very useful to me for some quick performance measurements.
by IshKebab on 1/2/23, 6:59 PM
Very cool. JSON is clearly a terrible format for this though. I've had great success using SQLite instead. You mentioned binary formats in the video - what other formats are supported? Last I looked the whole chrome://tracing ecosystem was stubbornly stuck with JSON.
by metadat on 1/2/23, 5:32 PM
by slekker on 1/2/23, 6:08 PM
On Safari/iOS, the webpage to the demo really doesn’t let me scroll down and keeps going back up :(