Skip to content
This repository was archived by the owner on Feb 22, 2018. It is now read-only.

Commit 15452ab

Browse files
heisafrkirov
authored andcommitted
perf(AngularTransformerGroup): creates only one Resolvers object
This change reduces the consumed memory during a build by about 50%. It uses the same Resolvers object to initialize all ResolverTransformer of the TransformerGroup. Issue #1683
1 parent 73b4153 commit 15452ab

File tree

1 file changed

+10
-9
lines changed

1 file changed

+10
-9
lines changed

lib/transformer.dart

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -137,8 +137,7 @@ Map<String, String> _readStringMapValue(Map args, String name) {
137137
return value;
138138
}
139139

140-
Transformer _staticGenerator(TransformOptions options) {
141-
var resolvers = new Resolvers(options.sdkDirectory);
140+
Transformer _staticGenerator(TransformOptions options, Resolvers resolvers) {
142141
return new _SerialTransformer([
143142
new TypeRelativeUriGenerator(options, resolvers),
144143
new ExpressionGenerator(options, resolvers),
@@ -148,13 +147,15 @@ Transformer _staticGenerator(TransformOptions options) {
148147
]);
149148
}
150149

151-
List<List<Transformer>> _createPhases(TransformOptions options) =>
152-
[
153-
[ new ObservableTransformer() ],
154-
[ new HtmlDartReferencesGenerator(options) ],
155-
[ new di.InjectorGenerator(options.diOptions, new Resolvers(options.sdkDirectory)) ],
156-
[ _staticGenerator(options) ]
157-
];
150+
List<List<Transformer>> _createPhases(TransformOptions options) {
151+
var resolvers = new Resolvers(options.sdkDirectory);
152+
return [
153+
[ new ObservableTransformer() ],
154+
[ new HtmlDartReferencesGenerator(options) ],
155+
[ new di.InjectorGenerator(options.diOptions, resolvers ) ],
156+
[ _staticGenerator(options, resolvers) ]
157+
];
158+
}
158159

159160
/// Helper which runs a group of transformers serially and ensures that
160161
/// transformers with shared data are always applied in a specific order.

0 commit comments

Comments
 (0)