Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(192)

Side by Side Diff: third_party/pkg/angular/perf/parser_perf.dart

Issue 257423008: Update all Angular libs (run update_all.sh). (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 6 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 library parser_perf;
2
3 import '_perf.dart';
4 import 'package:angular/core/module.dart';
5 import 'package:angular/core/parser/parser.dart';
6 import 'package:angular/filter/module.dart';
7 import 'package:di/di.dart';
8 import 'package:di/dynamic_injector.dart';
9 import 'package:intl/intl.dart';
10
11 import '../gen/generated_functions.dart' as generated_functions;
12 import '../gen/generated_getter_setter.dart' as generated_getter_setter;
13
14 main() {
15 var module = new Module()
16 ..type(Parser, implementedBy: DynamicParser)
17 ..type(ParserBackend, implementedBy: DynamicParserBackend)
18 ..type(SubstringFilter)
19 ..type(IncrementFilter)
20 ..install(new NgFilterModule());
21 var injector = new DynamicInjector(
22 modules: [module],
23 allowImplicitInjection:true);
24 var scope = injector.get(Scope);
25 var reflectiveParser = injector.get(Parser);
26 var filterMap = injector.get(FilterMap);
27
28 var generatedParser = new DynamicInjector(
29 modules: [new Module()
30 ..type(Parser, implementedBy: StaticParser)
31 ..type(ParserBackend, implementedBy: DynamicParserBackend)
32 ..value(StaticParserFunctions, generated_functions.functions())],
33 allowImplicitInjection:true).get(Parser);
34
35 var hybridParser = new DynamicInjector(
36 modules: [new Module()
37 ..type(Parser, implementedBy: DynamicParser)
38 ..type(ParserBackend, implementedBy: DynamicParserBackend)
39 ..type(ClosureMap, implementedBy: generated_getter_setter.StaticClosureM ap)],
40 allowImplicitInjection:true).get(Parser);
41
42 scope['a'] = new ATest();
43 scope['e1'] = new EqualsThrows();
44 scope['o'] = new OTest();
45
46 compare(expr, idealFn) {
47 var nf = new NumberFormat.decimalPattern();
48 Expression reflectionExpr = reflectiveParser(expr);
49 Expression generatedExpr = generatedParser(expr);
50 Expression hybridExpr = hybridParser(expr);
51 var measure = (b) => statMeasure(b).mean_ops_sec;
52 var gTime = measure(() => generatedExpr.eval(scope));
53 var rTime = measure(() => reflectionExpr.eval(scope));
54 var hTime = measure(() => hybridExpr.eval(scope));
55 var iTime = measure(() => idealFn(scope));
56 print('$expr => g: ${nf.format(gTime)} ops/sec ' +
57 'r: ${nf.format(rTime)} ops/sec ' +
58 'h: ${nf.format(hTime)} ops/sec ' +
59 'i: ${nf.format(iTime)} ops/sec = ' +
60 'i/g: ${nf.format(iTime / gTime)} x ' +
61 'i/r: ${nf.format(iTime / rTime)} x ' +
62 'i/h: ${nf.format(iTime / hTime)} x ' +
63 'g/h: ${nf.format(gTime / hTime)} x ' +
64 'h/r: ${nf.format(hTime / rTime)} x ' +
65 'g/r: ${nf.format(gTime / rTime)} x');
66 }
67
68 compare('a.b.c', (scope) => scope['a'].b.c);
69 compare('e1.b', (scope) => scope['e1'].b);
70 compare('o.f()', (scope) => scope['o'].f());
71 compare('null', (scope) => null);
72 compare('x.b.c', (s, [l]) {
73 if (l != null && l.containsKey('x')) s = l['x'];
74 else if (s != null ) s = s is Map ? s['x'] : s.x;
75 if (s != null ) s = s is Map ? s['b'] : s.b;
76 if (s != null ) s = s is Map ? s['c'] : s.c;
77 return s;
78 });
79 compare('doesNotExist', (scope) => scope['doesNotExists']);
80 }
81
82
83 class ATest {
84 var b = new BTest();
85 }
86
87 class BTest {
88 var c = 6;
89 }
90
91 class OTest {
92 f() => 42;
93 }
94
95 class EqualsThrows {
96 var b = 3;
97 operator ==(x) {
98 try {
99 throw "no";
100 } catch (e) {
101 return false;
102 }
103 }
104 }
105
106 @NgFilter(name:'increment')
107 class IncrementFilter {
108 call(a, b) => a + b;
109 }
110
111 @NgFilter(name:'substring')
112 class SubstringFilter {
113 call(String str, startIndex, [endIndex]) {
114 return str.substring(startIndex, endIndex);
115 }
116 }
117
OLDNEW
« no previous file with comments | « third_party/pkg/angular/perf/mirror_perf.dart ('k') | third_party/pkg/angular/perf/pubspec.yaml » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698