diff --git a/core/src/main/java/hudson/model/Label.java b/core/src/main/java/hudson/model/Label.java
index <HASH>..<HASH> 100644
--- a/core/src/main/java/hudson/model/Label.java
+++ b/core/src/main/java/hudson/model/Label.java
@@ -85,6 +85,7 @@ public abstract class Label extends Actionable implements Comparable<Label>, Mod
     protected transient final String name;
     private transient volatile Set<Node> nodes;
     private transient volatile Set<Cloud> clouds;
+    private transient volatile int tiedJobsCount;
 
     @Exported
     public transient final LoadStatistics loadStatistics;
@@ -376,6 +377,8 @@ public abstract class Label extends Actionable implements Comparable<Label>, Mod
      * @return a count of projects that are tied on this node.
      */
     public int getTiedJobCount() {
+        if (tiedJobsCount != -1) return tiedJobsCount;
+
         // denormalize for performance
         // we don't need to respect security as much when returning a simple count
         SecurityContext context = ACL.impersonate(ACL.SYSTEM);
@@ -412,7 +415,7 @@ public abstract class Label extends Actionable implements Comparable<Label>, Mod
                     }
                 }
             }
-            return result;
+            return tiedJobsCount = result;
         } finally {
             SecurityContextHolder.setContext(context);
         }
@@ -433,6 +436,7 @@ public abstract class Label extends Actionable implements Comparable<Label>, Mod
     /*package*/ void reset() {
         nodes = null;
         clouds = null;
+        tiedJobsCount = -1;
     }
 
     /**
[FIXED JENKINS-<I>] Optimize TagCloud calculation

(cherry picked from commit 1b<I>dc3b<I>c0c<I>e2f0a2d6ff0b8bed3)