@NHDaly and I recently put our heads together and created an export from Julia’s statistical profiler to pprof (a Go based analysis and visualization tool), you can export profiles – send them to a friend; get some nice and responsive flamegraphs; plot weighted callgraphs; diff two profiles, etc!
It also exports the profile to disk under the name provided in out = "", so you can share the exported profiles with friends, or even diff two profiles.
For now, we don’t provide any julia API on top of the embedded go/pprof binary, but you can access the binary via PProf.go_pprof, e.g.:
web = false will just export the profile to disk (named via the out=profile.pb.gz flag), and will not start the webserver. Currently there is no way to start the webserver and not open chrome; I think the pprof binary opens the link automatically (like jupyter).
Hmm, i just tried, and while yeah you can totally run pprof() asynchronously, it doesn’t look like pprof watches your profile file. It seems to load the data into memory and then use it, so I don’t think you can update it like that…
It probably wouldn’t be too hard to keep a global instance of pprof running asynchronously and restart it when you build a new profile! That would be a nice feature! (Wanna send a PR? )