strax
strax copied to clipboard
Computation time tracker for plugins
Suggested by @darrylmasson:
does strax have a nice way of communicating which plugin is the bottleneck? Pax had that table at the end of a run, it seems like a very useful thing to have especially during commissioning.
This would be nice to add. You can already run strax in profiling mode:
with strax.profile_threaded('my_run.prof'): df = st.get_df(run_id, 'event_info')
This produces my_run.prof, which you can visualize in snakeviz, and will give you much more detailed information than just which plugin is the bottleneck. You'll also get some info on what fraction of the time the GIL was held. But profiling itself does slow things down, and I would guess it does not work while multiprocessing (getting it to work with multithreading was tricky enough).