Python event tracing using the Trace Event Format which is supported by Chromium browsers and other tools
Install and update using pip
Add tracing to sections of your code and execute to generate a json
trace file
import time
from trace_events import Profiler, profile, timeit
@profile
def foo():
# ... do some work
@profile(category='suspected-slow')
def bar():
time.sleep(1)
def baz(value):
with timeit('baz::foo'):
foo()
with timeit('baz::bar', value=value):
bar()
if __name__ == '__main__':
baz(10)
Profiler.global_profiler().save_trace('trace.json')
Traces are saved atexit
to a default trace.json
file, or can be configured with a call to init_trace
import trace_events
trace_events.init_trace(
trace_file_dir='./my-traces',
trace_file_name='my-trace.json',
# save_at_exit = True
# overwrite_trace_files=False,
# logger=logging.getLogger("trace_events")
)
Open up a Chromium browser to chrome://tracing and load the file to view the trace
More examples in the examples folder