diff options
author | 2015-03-19 16:12:34 +0000 | |
---|---|---|
committer | 2015-03-20 14:37:30 +0000 | |
commit | 58505033a9a424873d61fc14c261f14bc08c523a (patch) | |
tree | be9b82d74e648e4614ed2abb3e9491298d140b2e /src/main/java/com/google/devtools/build/lib/analysis/constraints | |
parent | a5e784efe8c160f0bff10e5944899e9f7227fbfa (diff) |
Replace @BlazeRule with a getMetadata() method. This lets us avoid Java Reflection, and saves ~15% of initialization time in []RuleClassProvider.create().
Before change:
Over 14 samples,
average = 976
median = 969.9
After change:
Over 14 samples,
average = 811.5
median = 813.9
--
MOS_MIGRATED_REVID=89036261
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/analysis/constraints')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/analysis/constraints/EnvironmentRule.java | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/constraints/EnvironmentRule.java b/src/main/java/com/google/devtools/build/lib/analysis/constraints/EnvironmentRule.java index 58116e8267..8330dba872 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/constraints/EnvironmentRule.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/constraints/EnvironmentRule.java @@ -18,7 +18,6 @@ import static com.google.devtools.build.lib.packages.Attribute.attr; import com.google.common.collect.ImmutableList; import com.google.devtools.build.lib.analysis.BaseRuleClasses; -import com.google.devtools.build.lib.analysis.BlazeRule; import com.google.devtools.build.lib.analysis.RuleDefinition; import com.google.devtools.build.lib.analysis.RuleDefinitionEnvironment; import com.google.devtools.build.lib.packages.RuleClass; @@ -28,9 +27,6 @@ import com.google.devtools.build.lib.util.FileTypeSet; /** * Rule definition for environment rules (for Bazel's constraint enforcement system). */ -@BlazeRule(name = EnvironmentRule.RULE_NAME, - ancestors = { BaseRuleClasses.BaseRule.class }, - factoryClass = Environment.class) public final class EnvironmentRule implements RuleDefinition { public static final String RULE_NAME = "environment"; @@ -67,4 +63,13 @@ public final class EnvironmentRule implements RuleDefinition { .setUndocumented() .build(); } + + @Override + public Metadata getMetadata() { + return RuleDefinition.Metadata.builder() + .name(EnvironmentRule.RULE_NAME) + .ancestors(BaseRuleClasses.BaseRule.class) + .factoryClass(Environment.class) + .build(); + } } |