In SkyKey#equals, check for 'functionName' equality before checking for 'argument' equality. When the two keys are equal we have to check both fields anyways, so we should only consider the case where they are unequal: 'functionName' equality is almost certainly cheaper, so we'd prefer short circuiting on inequality from that cheap check.

--
MOS_MIGRATED_REVID=106989244
diff --git a/src/main/java/com/google/devtools/build/skyframe/SkyKey.java b/src/main/java/com/google/devtools/build/skyframe/SkyKey.java
index 4187555..6e8ec87 100644
--- a/src/main/java/com/google/devtools/build/skyframe/SkyKey.java
+++ b/src/main/java/com/google/devtools/build/skyframe/SkyKey.java
@@ -103,7 +103,7 @@
       return false;
     }
     SkyKey other = (SkyKey) obj;
-    return argument.equals(other.argument) && functionName.equals(other.functionName);
+    return functionName.equals(other.functionName) && argument.equals(other.argument);
   }
 
   public static final Function<SkyKey, Object> NODE_NAME = new Function<SkyKey, Object>() {