diff options
author | Nathan Harmata <nharmata@google.com> | 2015-10-06 01:00:47 +0000 |
---|---|---|
committer | Laszlo Csomor <laszlocsomor@google.com> | 2015-10-06 07:04:13 +0000 |
commit | 3a509bdb1fd842f66b2efe75d6c619605904f8aa (patch) | |
tree | 885f66b47606fcd6ef3de2a7d874b9b74036dd63 /src/main/java/com/google/devtools/build/lib/skyframe/FilesystemValueChecker.java | |
parent | e1b61d0d8a0b2bb7d2984f4aa3bd2b20c426f634 (diff) |
In FilesystemValueChecker, use 200 threads and don't waste threads on skipped keys. This yields some noticeable improvements for the wall times of null builds with even a small set of files to be checked for changes.
--
MOS_MIGRATED_REVID=104717653
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 | 17 |
1 files changed, 9 insertions, 8 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 35df1101fc..57f64c4614 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 @@ -63,7 +63,7 @@ import javax.annotation.Nullable; */ class FilesystemValueChecker { - private static final int DIRTINESS_CHECK_THREADS = 50; + private static final int DIRTINESS_CHECK_THREADS = 200; private static final Logger LOG = Logger.getLogger(FilesystemValueChecker.class.getName()); private static final Predicate<SkyKey> ACTION_FILTER = @@ -311,6 +311,10 @@ class FilesystemValueChecker { }; try (AutoProfiler prof = AutoProfiler.create(elapsedTimeReceiver)) { for (final SkyKey key : values) { + numKeysScanned.incrementAndGet(); + if (!checker.applies(key)) { + continue; + } final SkyValue value = valuesSupplier.get().get(key); executor.execute( wrapper.wrap( @@ -318,13 +322,10 @@ class FilesystemValueChecker { @Override public void run() { if (value != null || checkMissingValues) { - numKeysScanned.incrementAndGet(); - DirtyResult result = checker.maybeCheck(key, value, tsgm); - if (result != null) { - numKeysChecked.incrementAndGet(); - if (result.isDirty()) { - batchResult.add(key, value, result.getNewValue()); - } + numKeysChecked.incrementAndGet(); + DirtyResult result = checker.check(key, value, tsgm); + if (result.isDirty()) { + batchResult.add(key, value, result.getNewValue()); } } } |