aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/query2
diff options
context:
space:
mode:
authorGravatar Eric Fellheimer <felly@google.com>2015-07-28 19:11:23 +0000
committerGravatar Lukacs Berki <lberki@google.com>2015-07-29 16:00:39 +0000
commita39f8a9f8ce1fc3c2fcc7a75ba3d7ddab52266ce (patch)
tree363406391f6c95520297edea2336930276d37895 /src/main/java/com/google/devtools/build/lib/query2
parentc3bca87818351cc9c85e47ac59732c9cbf378724 (diff)
Add some useful logging of "blaze query" timing.
-- MOS_MIGRATED_REVID=99302436
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/query2')
-rw-r--r--src/main/java/com/google/devtools/build/lib/query2/AbstractBlazeQueryEnvironment.java10
-rw-r--r--src/main/java/com/google/devtools/build/lib/query2/SkyQueryEnvironment.java9
2 files changed, 19 insertions, 0 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/query2/AbstractBlazeQueryEnvironment.java b/src/main/java/com/google/devtools/build/lib/query2/AbstractBlazeQueryEnvironment.java
index 27b0838d1a..779ede8210 100644
--- a/src/main/java/com/google/devtools/build/lib/query2/AbstractBlazeQueryEnvironment.java
+++ b/src/main/java/com/google/devtools/build/lib/query2/AbstractBlazeQueryEnvironment.java
@@ -29,6 +29,7 @@ import com.google.devtools.build.lib.pkgcache.PackageProvider;
import com.google.devtools.build.lib.pkgcache.PathPackageLocator;
import com.google.devtools.build.lib.pkgcache.TargetPatternEvaluator;
import com.google.devtools.build.lib.pkgcache.TransitivePackageLoader;
+import com.google.devtools.build.lib.profiler.Profiler;
import com.google.devtools.build.lib.query2.engine.QueryEnvironment;
import com.google.devtools.build.lib.query2.engine.QueryEvalResult;
import com.google.devtools.build.lib.query2.engine.QueryException;
@@ -43,6 +44,7 @@ import java.util.LinkedHashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
+import java.util.logging.Logger;
import javax.annotation.Nullable;
@@ -63,6 +65,8 @@ public abstract class AbstractBlazeQueryEnvironment<T> implements QueryEnvironme
private final Set<Setting> settings;
private final List<QueryFunction> extraFunctions;
+ private static final Logger LOG = Logger.getLogger(AbstractBlazeQueryEnvironment.class.getName());
+
protected AbstractBlazeQueryEnvironment(boolean keepGoing,
boolean strictScope,
Predicate<Label> labelFilter,
@@ -133,6 +137,7 @@ public abstract class AbstractBlazeQueryEnvironment<T> implements QueryEnvironme
*/
public QueryEvalResult<T> evaluateQuery(QueryExpression expr)
throws QueryException, InterruptedException {
+ long startTime = Profiler.nanoTimeMaybe();
resolvedTargetPatterns.clear();
// In the --nokeep_going case, errors are reported in the order in which the patterns are
@@ -151,6 +156,11 @@ public abstract class AbstractBlazeQueryEnvironment<T> implements QueryEnvironme
resultNodes = expr.eval(this);
} catch (QueryException e) {
throw new QueryException(e, expr);
+ } finally {
+ long duration = Profiler.nanoTimeMaybe() - startTime;
+ if (duration > 0) {
+ LOG.info("Spent " + (duration / 1000 / 1000) + " ms evaluating query");
+ }
}
if (eventHandler.hasErrors()) {
diff --git a/src/main/java/com/google/devtools/build/lib/query2/SkyQueryEnvironment.java b/src/main/java/com/google/devtools/build/lib/query2/SkyQueryEnvironment.java
index cb0f2f69e9..6fd5512ef8 100644
--- a/src/main/java/com/google/devtools/build/lib/query2/SkyQueryEnvironment.java
+++ b/src/main/java/com/google/devtools/build/lib/query2/SkyQueryEnvironment.java
@@ -39,6 +39,7 @@ import com.google.devtools.build.lib.packages.Rule;
import com.google.devtools.build.lib.packages.Target;
import com.google.devtools.build.lib.pkgcache.PathPackageLocator;
import com.google.devtools.build.lib.pkgcache.TargetPatternEvaluator;
+import com.google.devtools.build.lib.profiler.Profiler;
import com.google.devtools.build.lib.query2.engine.AllRdepsFunction;
import com.google.devtools.build.lib.query2.engine.QueryEvalResult;
import com.google.devtools.build.lib.query2.engine.QueryException;
@@ -69,6 +70,7 @@ import java.util.LinkedHashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
+import java.util.logging.Logger;
import javax.annotation.Nullable;
@@ -90,6 +92,8 @@ public class SkyQueryEnvironment extends AbstractBlazeQueryEnvironment<Target> {
private final String parserPrefix;
private final PathPackageLocator pkgPath;
+ private static final Logger LOG = Logger.getLogger(SkyQueryEnvironment.class.getName());
+
public SkyQueryEnvironment(boolean keepGoing, boolean strictScope, int loadingPhaseThreads,
Predicate<Label> labelFilter,
EventHandler eventHandler,
@@ -111,10 +115,15 @@ public class SkyQueryEnvironment extends AbstractBlazeQueryEnvironment<Target> {
}
private void init() throws InterruptedException {
+ long startTime = Profiler.nanoTimeMaybe();
EvaluationResult<SkyValue> result =
graphFactory.prepareAndGet(universeScope, loadingPhaseThreads, eventHandler);
graph = result.getWalkableGraph();
Collection<SkyValue> values = result.values();
+ long duration = Profiler.nanoTimeMaybe() - startTime;
+ if (duration > 0) {
+ LOG.info("Spent " + (duration / 1000 / 1000) + " ms on evaluation and walkable graph");
+ }
// The universe query may fail if there are errors during its evaluation, e.g. because of
// cycles in the target graph.