Optimize GC churn of Attribute#getAspects by lazily allocating a builder.

PiperOrigin-RevId: 187113491
diff --git a/src/main/java/com/google/devtools/build/lib/packages/Attribute.java b/src/main/java/com/google/devtools/build/lib/packages/Attribute.java
index 75ff0f3..4821e3b 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/Attribute.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/Attribute.java
@@ -2110,14 +2110,17 @@
    * Returns the list of aspects required for dependencies through this attribute.
    */
   public ImmutableList<Aspect> getAspects(Rule rule) {
-    ImmutableList.Builder<Aspect> builder = ImmutableList.builder();
+    ImmutableList.Builder<Aspect> builder = null;
     for (RuleAspect aspect : aspects) {
       Aspect a = aspect.getAspect(rule);
       if (a != null) {
+        if (builder == null) {
+          builder = ImmutableList.builder();
+        }
         builder.add(a);
       }
     }
-    return builder.build();
+    return builder == null ? ImmutableList.of() : builder.build();
   }
 
   public ImmutableList<AspectClass> getAspectClasses() {