]> Cypherpunks repositories - gostls13.git/commit
cmd/pprof: add Go implementation
authorRuss Cox <rsc@golang.org>
Tue, 30 Sep 2014 17:41:54 +0000 (13:41 -0400)
committerRuss Cox <rsc@golang.org>
Tue, 30 Sep 2014 17:41:54 +0000 (13:41 -0400)
commit8b5221a57b41a19abcb4e3dde20014af494048c2
tree4f2920158b260826cd960bd5d4a8d31f651b9467
parent454d1b0e8b85e9a194e36d5374a6d88babaa407b
cmd/pprof: add Go implementation

Update #8798

This is a new implementation of pprof,
written in Go instead of in Perl.
It was written primarily by Raul Silvera and
is in use for profiling programs of all languages
inside Google.

The internal structure is a bit package-heavy,
but it matches the copy used inside Google, and
since it is in an internal directory, we can make
changes to it later if we need to.

The only "new" file here is src/cmd/pprof/pprof.go,
which stitches together the Google pprof and the
Go command libraries for object file access.

I am explicitly NOT interested in style or review
comments on the rest of the files
(that is, src/cmd/pprof/internal/...).
Those are intended to stay as close to the Google
copies as possible, like we did with the pprof Perl script.

Still to do:

- Basic tests.
- Real command documentation.
- Hook up disassemblers.

LGTM=r
R=r, bradfitz, alex.brainman, dave
CC=golang-codereviews
https://golang.org/cl/153750043
19 files changed:
src/cmd/pprof/internal/commands/commands.go [new file with mode: 0644]
src/cmd/pprof/internal/driver/driver.go [new file with mode: 0644]
src/cmd/pprof/internal/driver/interactive.go [new file with mode: 0644]
src/cmd/pprof/internal/fetch/fetch.go [new file with mode: 0644]
src/cmd/pprof/internal/plugin/plugin.go [new file with mode: 0644]
src/cmd/pprof/internal/profile/encode.go [new file with mode: 0644]
src/cmd/pprof/internal/profile/filter.go [new file with mode: 0644]
src/cmd/pprof/internal/profile/legacy_profile.go [new file with mode: 0644]
src/cmd/pprof/internal/profile/profile.go [new file with mode: 0644]
src/cmd/pprof/internal/profile/proto.go [new file with mode: 0644]
src/cmd/pprof/internal/profile/prune.go [new file with mode: 0644]
src/cmd/pprof/internal/report/report.go [new file with mode: 0644]
src/cmd/pprof/internal/report/source.go [new file with mode: 0644]
src/cmd/pprof/internal/report/source_html.go [new file with mode: 0644]
src/cmd/pprof/internal/svg/svg.go [new file with mode: 0644]
src/cmd/pprof/internal/symbolizer/symbolizer.go [new file with mode: 0644]
src/cmd/pprof/internal/symbolz/symbolz.go [new file with mode: 0644]
src/cmd/pprof/internal/tempfile/tempfile.go [new file with mode: 0644]
src/cmd/pprof/pprof.go [new file with mode: 0644]