diff options
| author | Michael Pratt <mpratt@google.com> | 2024-03-04 13:29:39 -0500 |
|---|---|---|
| committer | Gopher Robot <gobot@golang.org> | 2024-03-27 20:20:01 +0000 |
| commit | 63deaf00ea6058d1422f0b435e475666cba5743e (patch) | |
| tree | 20ea11d36b1c627fd99993ea6eaff8835e698ffc /src/cmd/compile/internal/test/testdata/pgo/devirtualize/devirt.pprof.node_map | |
| parent | 2860e01853174e278900ef6907b1941b16fb1645 (diff) | |
| download | go-63deaf00ea6058d1422f0b435e475666cba5743e.tar.xz | |
cmd/compile,cmd/preprofile: move logic to shared common package
The processing performed in cmd/preprofile is a simple version of the
same initial processing performed by cmd/compile/internal/pgo. Refactor
this processing into the new IR-independent cmd/internal/pgo package.
Now cmd/preprofile and cmd/compile run the same code for initial
processing of a pprof profile, guaranteeing that they always stay in
sync.
Since it is now trivial, this CL makes one change to the serialization
format: the entries are ordered by weight. This allows us to avoid
sorting ByWeight on deserialization.
Impact on PGO parsing when compiling cmd/compile with PGO:
* Without preprocessing: PGO parsing ~13.7% of CPU time
* With preprocessing (unsorted): ~2.9% of CPU time (sorting ~1.7%)
* With preprocessing (sorted): ~1.3% of CPU time
The remaining 1.3% of CPU time approximately breaks down as:
* ~0.5% parsing the preprocessed profile
* ~0.7% building weighted IR call graph
* ~0.5% walking function IR to find direct calls
* ~0.2% performing lookups for indirect calls targets
For #58102.
Change-Id: Iaba425ea30b063ca195fb2f7b29342961c8a64c2
Reviewed-on: https://go-review.googlesource.com/c/go/+/569337
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Auto-Submit: Michael Pratt <mpratt@google.com>
Reviewed-by: Cherry Mui <cherryyz@google.com>
Diffstat (limited to 'src/cmd/compile/internal/test/testdata/pgo/devirtualize/devirt.pprof.node_map')
| -rw-r--r-- | src/cmd/compile/internal/test/testdata/pgo/devirtualize/devirt.pprof.node_map | 62 |
1 files changed, 31 insertions, 31 deletions
diff --git a/src/cmd/compile/internal/test/testdata/pgo/devirtualize/devirt.pprof.node_map b/src/cmd/compile/internal/test/testdata/pgo/devirtualize/devirt.pprof.node_map index c55f990e84..1bb6a80f06 100644 --- a/src/cmd/compile/internal/test/testdata/pgo/devirtualize/devirt.pprof.node_map +++ b/src/cmd/compile/internal/test/testdata/pgo/devirtualize/devirt.pprof.node_map @@ -1,52 +1,52 @@ GO PREPROFILE V1 -example.com/pgo/devirtualize.ExerciseFuncClosure -example.com/pgo/devirtualize/mult%2epkg.MultClosure.func1 -18 93 -example.com/pgo/devirtualize.ExerciseIface -example.com/pgo/devirtualize/mult%2epkg.NegMult.Multiply -49 4 example.com/pgo/devirtualize.ExerciseFuncConcrete example.com/pgo/devirtualize.AddFn 48 103 example.com/pgo/devirtualize.ExerciseFuncField -example.com/pgo/devirtualize/mult%2epkg.NegMultFn -23 8 +example.com/pgo/devirtualize.AddFn +23 101 example.com/pgo/devirtualize.ExerciseFuncField example.com/pgo/devirtualize/mult%2epkg.MultFn 23 94 -example.com/pgo/devirtualize.ExerciseIface -example.com/pgo/devirtualize/mult%2epkg.Mult.Multiply -49 40 +example.com/pgo/devirtualize.ExerciseFuncClosure +example.com/pgo/devirtualize/mult%2epkg.MultClosure.func1 +18 93 +example.com/pgo/devirtualize.ExerciseFuncClosure +example.com/pgo/devirtualize.Add.Add +18 92 +example.com/pgo/devirtualize.ExerciseFuncConcrete +example.com/pgo/devirtualize/mult%2epkg.MultFn +48 91 example.com/pgo/devirtualize.ExerciseIface example.com/pgo/devirtualize.Add.Add 49 55 -example.com/pgo/devirtualize.ExerciseFuncConcrete -example.com/pgo/devirtualize/mult%2epkg.NegMultFn -48 8 +example.com/pgo/devirtualize.ExerciseIface +example.com/pgo/devirtualize/mult%2epkg.Mult.Multiply +49 40 +example.com/pgo/devirtualize.ExerciseFuncClosure +example.com/pgo/devirtualize.Sub.Add +18 14 +example.com/pgo/devirtualize.ExerciseFuncField +example.com/pgo/devirtualize.SubFn +23 12 example.com/pgo/devirtualize.ExerciseFuncClosure example.com/pgo/devirtualize/mult%2epkg.NegMultClosure.func1 18 10 +example.com/pgo/devirtualize.ExerciseFuncConcrete +example.com/pgo/devirtualize/mult%2epkg.NegMultFn +48 8 +example.com/pgo/devirtualize.ExerciseFuncField +example.com/pgo/devirtualize/mult%2epkg.NegMultFn +23 8 example.com/pgo/devirtualize.ExerciseIface example.com/pgo/devirtualize.Sub.Add 49 7 -example.com/pgo/devirtualize.ExerciseFuncField -example.com/pgo/devirtualize.AddFn -23 101 -example.com/pgo/devirtualize.ExerciseFuncField +example.com/pgo/devirtualize.ExerciseFuncConcrete example.com/pgo/devirtualize.SubFn -23 12 +48 5 +example.com/pgo/devirtualize.ExerciseIface +example.com/pgo/devirtualize/mult%2epkg.NegMult.Multiply +49 4 example.com/pgo/devirtualize.BenchmarkDevirtFuncConcrete example.com/pgo/devirtualize.ExerciseFuncConcrete 1 2 -example.com/pgo/devirtualize.ExerciseFuncConcrete -example.com/pgo/devirtualize/mult%2epkg.MultFn -48 91 -example.com/pgo/devirtualize.ExerciseFuncConcrete -example.com/pgo/devirtualize.SubFn -48 5 -example.com/pgo/devirtualize.ExerciseFuncClosure -example.com/pgo/devirtualize.Add.Add -18 92 -example.com/pgo/devirtualize.ExerciseFuncClosure -example.com/pgo/devirtualize.Sub.Add -18 14 |
