diff --git a/src/main/java/com/google/devtools/build/lib/cmdline/PackageIdentifier.java b/src/main/java/com/google/devtools/build/lib/cmdline/PackageIdentifier.java
index 2fa4494..74cd6fa 100644
--- a/src/main/java/com/google/devtools/build/lib/cmdline/PackageIdentifier.java
+++ b/src/main/java/com/google/devtools/build/lib/cmdline/PackageIdentifier.java
@@ -22,6 +22,7 @@
 import com.google.devtools.build.lib.vfs.PathFragment;
 
 import java.io.Serializable;
+import java.util.Objects;
 
 import javax.annotation.concurrent.Immutable;
 
@@ -77,10 +78,14 @@
   /** The name of the package. Canonical (i.e. x.equals(y) <=> x==y). */
   private final PathFragment pkgName;
 
+  /** Precomputed hash code **/
+  private final int hashCode;
+
   private PackageIdentifier(RepositoryName repository, PathFragment pkgName) {
     this.repository = Preconditions.checkNotNull(repository);
     this.pkgName = Canonicalizer.fragments().intern(
             Preconditions.checkNotNull(pkgName).normalize());
+    this.hashCode = Objects.hash(repository, pkgName);
   }
 
   public static PackageIdentifier parse(String input) throws LabelSyntaxException {
@@ -166,12 +171,13 @@
       return false;
     }
     PackageIdentifier that = (PackageIdentifier) object;
-    return pkgName.equals(that.pkgName) && repository.equals(that.repository);
+    return this.hashCode == that.hashCode && pkgName.equals(that.pkgName)
+        && repository.equals(that.repository);
   }
 
   @Override
   public int hashCode() {
-    return 31 * repository.hashCode() + pkgName.hashCode();
+    return this.hashCode;
   }
 
   @Override
