diff options
author | ulfjack <ulfjack@google.com> | 2018-06-12 12:21:25 -0700 |
---|---|---|
committer | Copybara-Service <copybara-piper@google.com> | 2018-06-12 12:23:15 -0700 |
commit | 400fffe8b2df50c5b57ced5d9a8b46e40d529d4e (patch) | |
tree | a9a1291a0a05d4dee5c8e2ea9da092135c91a42f /src/main/java/com/google/devtools/build/skyframe/AbstractParallelEvaluator.java | |
parent | c958649131ab8cf48a881aaddc50390cb7d79bfb (diff) |
Add support for the Json trace file format
Add a --experimental_generate_json_trace_profile option that puts a file into
the output base (or uses --profile if set).
There are still a lot of problems with this.
- unexplained holes
- way too many threads
- nonsensical event titles
- too many detail events, too little overview
- it may also cause unnecessary load
- it silently overwrites the existing file on subsequent invocations
The format is documented here: goo.gl/oMZPLh
PiperOrigin-RevId: 200259431
Diffstat (limited to 'src/main/java/com/google/devtools/build/skyframe/AbstractParallelEvaluator.java')
-rw-r--r-- | src/main/java/com/google/devtools/build/skyframe/AbstractParallelEvaluator.java | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/main/java/com/google/devtools/build/skyframe/AbstractParallelEvaluator.java b/src/main/java/com/google/devtools/build/skyframe/AbstractParallelEvaluator.java index 2373959857..0c94277a4b 100644 --- a/src/main/java/com/google/devtools/build/skyframe/AbstractParallelEvaluator.java +++ b/src/main/java/com/google/devtools/build/skyframe/AbstractParallelEvaluator.java @@ -375,19 +375,19 @@ public abstract class AbstractParallelEvaluator { state); SkyValue value = null; - long startTime = BlazeClock.instance().nanoTime(); + long startTimeNanos = BlazeClock.instance().nanoTime(); try { try { evaluatorContext.getProgressReceiver().stateStarting(skyKey, NodeState.COMPUTE); value = factory.compute(skyKey, env); } finally { - long elapsedTimeNanos = BlazeClock.instance().nanoTime() - startTime; + long elapsedTimeNanos = BlazeClock.instance().nanoTime() - startTimeNanos; if (elapsedTimeNanos > 0) { evaluatorContext.getProgressReceiver().stateEnding(skyKey, NodeState.COMPUTE, elapsedTimeNanos); Profiler.instance() .logSimpleTaskDuration( - startTime, + startTimeNanos, Duration.ofNanos(elapsedTimeNanos), ProfilerTask.SKYFUNCTION, skyKey.functionName().getName()); |