aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/skyframe/FilesystemValueChecker.java
diff options
context:
space:
mode:
authorGravatar twerth <twerth@google.com>2018-07-04 01:58:40 -0700
committerGravatar Copybara-Service <copybara-piper@google.com>2018-07-04 01:59:47 -0700
commit646dfd1d32e41dc3fbc9ebcae2dfd385fe05ce7e (patch)
tree83b62bc039911f559ac88f58ec8264317413555e /src/main/java/com/google/devtools/build/lib/skyframe/FilesystemValueChecker.java
parentaa2231ebbc3bf6d4715d16aa9c8a6e08c85f5b74 (diff)
Add better profiling for getDirtyActionValues.
PiperOrigin-RevId: 203248319
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/skyframe/FilesystemValueChecker.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/FilesystemValueChecker.java36
1 files changed, 24 insertions, 12 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/FilesystemValueChecker.java b/src/main/java/com/google/devtools/build/lib/skyframe/FilesystemValueChecker.java
index e154a08780..c99898028a 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/FilesystemValueChecker.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/FilesystemValueChecker.java
@@ -31,6 +31,8 @@ import com.google.devtools.build.lib.concurrent.Sharder;
import com.google.devtools.build.lib.concurrent.ThrowableRecordingRunnableWrapper;
import com.google.devtools.build.lib.profiler.AutoProfiler;
import com.google.devtools.build.lib.profiler.AutoProfiler.ElapsedTimeReceiver;
+import com.google.devtools.build.lib.profiler.Profiler;
+import com.google.devtools.build.lib.profiler.SilentCloseable;
import com.google.devtools.build.lib.skyframe.SkyValueDirtinessChecker.DirtyResult;
import com.google.devtools.build.lib.util.LoggingUtil;
import com.google.devtools.build.lib.util.Pair;
@@ -169,9 +171,11 @@ public class FilesystemValueChecker {
logger.info("Accumulating dirty actions");
final int numOutputJobs = Runtime.getRuntime().availableProcessors() * 4;
final Set<SkyKey> actionSkyKeys = new HashSet<>();
- for (SkyKey key : valuesMap.keySet()) {
- if (ACTION_FILTER.apply(key)) {
- actionSkyKeys.add(key);
+ try (SilentCloseable c = Profiler.instance().profile("getDirtyActionValues.filter_actions")) {
+ for (SkyKey key : valuesMap.keySet()) {
+ if (ACTION_FILTER.apply(key)) {
+ actionSkyKeys.add(key);
+ }
}
}
final Sharder<Pair<SkyKey, ActionExecutionValue>> outputShards =
@@ -211,16 +215,24 @@ public class FilesystemValueChecker {
}
});
- for (List<Pair<SkyKey, ActionExecutionValue>> shard : outputShards) {
- Runnable job = (batchStatter == null)
- ? outputStatJob(dirtyKeys, shard, knownModifiedOutputFiles,
- sortedKnownModifiedOutputFiles)
- : batchStatJob(dirtyKeys, shard, batchStatter, knownModifiedOutputFiles,
- sortedKnownModifiedOutputFiles);
- Future<?> unused = executor.submit(wrapper.wrap(job));
- }
+ boolean interrupted;
+ try (SilentCloseable c = Profiler.instance().profile("getDirtyActionValues.stat_files")) {
+ for (List<Pair<SkyKey, ActionExecutionValue>> shard : outputShards) {
+ Runnable job =
+ (batchStatter == null)
+ ? outputStatJob(
+ dirtyKeys, shard, knownModifiedOutputFiles, sortedKnownModifiedOutputFiles)
+ : batchStatJob(
+ dirtyKeys,
+ shard,
+ batchStatter,
+ knownModifiedOutputFiles,
+ sortedKnownModifiedOutputFiles);
+ Future<?> unused = executor.submit(wrapper.wrap(job));
+ }
- boolean interrupted = ExecutorUtil.interruptibleShutdown(executor);
+ interrupted = ExecutorUtil.interruptibleShutdown(executor);
+ }
Throwables.propagateIfPossible(wrapper.getFirstThrownError());
logger.info("Completed output file stat checks");
if (interrupted) {