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
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 35df110..57f64c4 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 @@
  */
 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 @@
     };
     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 @@
                   @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());
                       }
                     }
                   }