aboutsummaryrefslogtreecommitdiffstats
path: root/cmd/soong_ui
diff options
context:
space:
mode:
authorNan Zhang <nanzhang@google.com>2018-12-12 16:01:49 -0800
committerNan Zhang <nanzhang@google.com>2019-01-04 15:54:01 -0800
commit17f2767724e7c7e8e2c4dcd595bd34b4de40f623 (patch)
tree2420a025fc229ed4f88a1b8b2a34a4c464cfe9b6 /cmd/soong_ui
parenta45e15e2d47c7527f17fbd92085e27cc39cde720 (diff)
downloadbuild_soong-17f2767724e7c7e8e2c4dcd595bd34b4de40f623.tar.gz
build_soong-17f2767724e7c7e8e2c4dcd595bd34b4de40f623.tar.bz2
build_soong-17f2767724e7c7e8e2c4dcd595bd34b4de40f623.zip
Generate build timing metrics to proto format file
Test: Dumped the text formated based metrics file to out dir, and checked the file. Bug: b/63815990 Change-Id: Iff476f72a0be74eb53b6b26ef468d11c0f24a404
Diffstat (limited to 'cmd/soong_ui')
-rw-r--r--cmd/soong_ui/main.go9
1 files changed, 8 insertions, 1 deletions
diff --git a/cmd/soong_ui/main.go b/cmd/soong_ui/main.go
index b603571b..2bd0cf44 100644
--- a/cmd/soong_ui/main.go
+++ b/cmd/soong_ui/main.go
@@ -26,6 +26,7 @@ import (
"android/soong/ui/build"
"android/soong/ui/logger"
+ "android/soong/ui/metrics"
"android/soong/ui/status"
"android/soong/ui/terminal"
"android/soong/ui/tracer"
@@ -73,6 +74,8 @@ func main() {
trace := tracer.New(log)
defer trace.Close()
+ met := metrics.New()
+
stat := &status.Status{}
defer stat.Finish()
stat.AddOutput(terminal.NewStatusOutput(writer, os.Getenv("NINJA_STATUS")))
@@ -87,6 +90,7 @@ func main() {
buildCtx := build.Context{ContextImpl: &build.ContextImpl{
Context: ctx,
Logger: log,
+ Metrics: met,
Tracer: trace,
Writer: writer,
Status: stat,
@@ -100,6 +104,9 @@ func main() {
build.SetupOutDir(buildCtx, config)
+ metricsPath := filepath.Join(config.OutDir(), "build_metrics")
+ defer met.Dump(metricsPath)
+
logsDir := config.OutDir()
if config.Dist() {
logsDir = filepath.Join(config.DistDir(), "logs")
@@ -116,7 +123,7 @@ func main() {
if start_time, err := strconv.ParseUint(start, 10, 64); err == nil {
log.Verbosef("Took %dms to start up.",
time.Since(time.Unix(0, int64(start_time))).Nanoseconds()/time.Millisecond.Nanoseconds())
- buildCtx.CompleteTrace("startup", start_time, uint64(time.Now().UnixNano()))
+ buildCtx.CompleteTrace(metrics.RunSetupTool, "startup", start_time, uint64(time.Now().UnixNano()))
}
}