| // Copyright 2017 The Go Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style |
| // license that can be found in the LICENSE file. |
| |
| /* |
| 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. |
| */ |
| package main |