Skip to content

Commit

Permalink
doc: reorganize the README
Browse files Browse the repository at this point in the history
  • Loading branch information
rakyll committed Jan 20, 2017
1 parent 671bd43 commit 35b841e
Showing 1 changed file with 44 additions and 29 deletions.
73 changes: 44 additions & 29 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,9 +42,9 @@ func main() {
}
```

### Diagnostics manual
### Manual

#### 0. listing all processes
#### Listing all processes

To print all go processes, run `gops` without arguments:

Expand All @@ -58,68 +58,83 @@ $ gops

Note that processes running the agent are marked with `*` next to the PID (e.g. `4132*`).

#### 1. stack
#### $ gops stack \<pid\>

In order to print the current stack trace from a target program, run the following command:


```sh
$ gops stack <pid>
gops stack 85709
goroutine 8 [running]:
runtime/pprof.writeGoroutineStacks(0x13c7bc0, 0xc42000e008, 0xc420ec8520, 0xc420ec8520)
/Users/jbd/go/src/runtime/pprof/pprof.go:603 +0x79
runtime/pprof.writeGoroutine(0x13c7bc0, 0xc42000e008, 0x2, 0xc428f1c048, 0xc420ec8608)
/Users/jbd/go/src/runtime/pprof/pprof.go:592 +0x44
runtime/pprof.(*Profile).WriteTo(0x13eeda0, 0x13c7bc0, 0xc42000e008, 0x2, 0xc42000e008, 0x0)
/Users/jbd/go/src/runtime/pprof/pprof.go:302 +0x3b5
github.com/google/gops/agent.handle(0x13cd560, 0xc42000e008, 0xc420186000, 0x1, 0x1, 0x0, 0x0)
/Users/jbd/src/github.com/google/gops/agent/agent.go:150 +0x1b3
github.com/google/gops/agent.listen()
/Users/jbd/src/github.com/google/gops/agent/agent.go:113 +0x2b2
created by github.com/google/gops/agent.Listen
/Users/jbd/src/github.com/google/gops/agent/agent.go:94 +0x480
# ...
```

#### 2. memstats
#### $ gops memstats \<pid\>

To print the current memory stats, run the following command:

```sh
$ gops memstats <pid>
```

#### 3. pprof

gops supports CPU and heap pprof profiles. After reading either heap or CPU profile,
it shells out to the `go tool pprof` and let you interatively examine the profiles.
#### $ gops gc \<pid\>

To enter the CPU profile, run:
If you want to force run garbage collection on the target program, run `gc`.
It will block until the GC is completed.

```sh
$ gops pprof-cpu <pid>
```

To enter the heap profile, run:
#### $ gops version \<pid\>

gops reports the Go version the target program is built with, if you run the following:

```sh
$ gops pprof-heap <pid>
$ gops version <pid>
devel +6a3c6c0 Sat Jan 14 05:57:07 2017 +0000
```

#### 4. trace
#### $ gops stats \<pid\>

gops allows you to start the runtime tracer for 5 seconds and examine the results.
To print the runtime statistics such as number of goroutines and `GOMAXPROCS`.

```sh
$ gops trace <pid>
```
#### Profiling

#### 5. gc

If you want to force run garbage collection on the target program, run the following command.
It will block until the GC is completed.
##### Pprof

gops supports CPU and heap pprof profiles. After reading either heap or CPU profile,
it shells out to the `go tool pprof` and let you interatively examine the profiles.

To enter the CPU profile, run:

```sh
$ gops gc <pid>
$ gops pprof-cpu <pid>
```

#### 6. version

gops reports the Go version the target program is built with, if you run the following:
To enter the heap profile, run:

```sh
$ gops version <pid>
$ gops pprof-heap <pid>
```

#### 7. stats
##### Go execution trace

To print the runtime statistics such as number of goroutines and `GOMAXPROCS`, run the following:
gops allows you to start the runtime tracer for 5 seconds and examine the results.

```sh
$ gops stats <pid>
$ gops trace <pid>
```

0 comments on commit 35b841e

Please sign in to comment.