Add performance counter metrics to build.trace.gz
Start a background goroutine at the beginning of soong_build that captures the CPU usage, heap size, and total system memory every second. Propagate the values through soong_build_metrics.pb back to soong_ui, and then into build.trace.gz. Test: m nothing, examine build.trace.gz Change-Id: Iad99f8f1f088f4f7f7d5f76566a38c0c4f4d0daa
This commit is contained in:
@@ -15,6 +15,7 @@
|
||||
package build
|
||||
|
||||
import (
|
||||
"android/soong/ui/tracer"
|
||||
"fmt"
|
||||
"io/fs"
|
||||
"os"
|
||||
@@ -774,6 +775,19 @@ func loadSoongBuildMetrics(ctx Context, config Config, oldTimestamp time.Time) {
|
||||
ctx.Tracer.Complete(desc, ctx.Thread,
|
||||
event.GetStartTime(), event.GetStartTime()+event.GetRealTime())
|
||||
}
|
||||
for _, event := range soongBuildMetrics.PerfCounters {
|
||||
timestamp := event.GetTime()
|
||||
for _, group := range event.Groups {
|
||||
counters := make([]tracer.Counter, 0, len(group.Counters))
|
||||
for _, counter := range group.Counters {
|
||||
counters = append(counters, tracer.Counter{
|
||||
Name: counter.GetName(),
|
||||
Value: counter.GetValue(),
|
||||
})
|
||||
}
|
||||
ctx.Tracer.CountersAtTime(group.GetName(), ctx.Thread, timestamp, counters)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func runMicrofactory(ctx Context, config Config, name string, pkg string, mapping map[string]string) {
|
||||
|
Reference in New Issue
Block a user