From c0f7a2801e1d65cb533a658f82b486beacb480bf Mon Sep 17 00:00:00 2001 From: janakr Date: Thu, 15 Feb 2018 07:44:06 -0800 Subject: Extract part of EnvironmentGroup that's necessary for constraint calculation, so we don't have to have the whole package. Memory increase should be minimal because there aren't that many environment groups, but it's further minimized by breaking an inner class UnpackagedEnvironmentGroup out of EnvironmentGroup. Previously, each EnvironmentGroup cost 40 bytes (24 bytes for first three fields, 8 for next two, 8 for last field because of alignment). Each UnpackagedEnvironmentGroup costs 32 bytes (4 fields), while the EnvironmentGroup now costs 24 bytes. So a loss of 16 bytes per EnvironmentGroup: shouldn't be noticeable. PiperOrigin-RevId: 185837140 --- .../analysis/constraints/ConstraintSemantics.java | 53 ++++++++++++---------- 1 file changed, 28 insertions(+), 25 deletions(-) (limited to 'src/main/java/com/google/devtools/build/lib/analysis/constraints/ConstraintSemantics.java') diff --git a/src/main/java/com/google/devtools/build/lib/analysis/constraints/ConstraintSemantics.java b/src/main/java/com/google/devtools/build/lib/analysis/constraints/ConstraintSemantics.java index 28af97d3a9..3d16a02d4e 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/constraints/ConstraintSemantics.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/constraints/ConstraintSemantics.java @@ -33,6 +33,7 @@ import com.google.devtools.build.lib.packages.AttributeMap; import com.google.devtools.build.lib.packages.BuildType; import com.google.devtools.build.lib.packages.DependencyFilter; import com.google.devtools.build.lib.packages.EnvironmentGroup; +import com.google.devtools.build.lib.packages.EnvironmentLabels; import com.google.devtools.build.lib.packages.RawAttributeMapper; import com.google.devtools.build.lib.packages.Rule; import com.google.devtools.build.lib.packages.RuleClass; @@ -149,7 +150,7 @@ public class ConstraintSemantics { * Provides a set of default environments for a given environment group. */ private interface DefaultsProvider { - Collection