diff options
author | twerth <twerth@google.com> | 2018-07-04 01:58:40 -0700 |
---|---|---|
committer | Copybara-Service <copybara-piper@google.com> | 2018-07-04 01:59:47 -0700 |
commit | 646dfd1d32e41dc3fbc9ebcae2dfd385fe05ce7e (patch) | |
tree | 83b62bc039911f559ac88f58ec8264317413555e /src/main/java/com/google/devtools/build/lib/skyframe/FilesystemValueChecker.java | |
parent | aa2231ebbc3bf6d4715d16aa9c8a6e08c85f5b74 (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.java | 36 |
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) { |