Black Lives Matter. Support the Equal Justice Initiative.

Command trace

Trace is a tool for viewing trace files.

Trace files can be generated with:

- runtime/trace.Start
- net/http/pprof package
- go test -trace

Example usage: Generate a trace file with 'go test':

go test -trace trace.out pkg

View the trace in a web browser:

go tool trace trace.out

Generate a pprof-like profile from the trace:

go tool trace -pprof=TYPE trace.out > TYPE.pprof

Supported profile types are:

- net: network blocking profile
- sync: synchronization blocking profile
- syscall: syscall blocking profile
- sched: scheduler latency profile

Then, you can use the pprof tool to analyze the profile:

go tool pprof TYPE.pprof

Note that while the various profiles available when launching 'go tool trace' work on every browser, the trace viewer itself (the 'view trace' page) comes from the Chrome/Chromium project and is only actively tested on that browser.