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

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

Issue 1058283006: Update pubspecs and dependencies to get pkgbuild tests working. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 5 years, 7 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
« no previous file with comments | « third_party/pkg/angular/perf.sh ('k') | third_party/pkg/angular/perf/dom/_perf.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 library _perf;
2
3 import 'package:intl/intl.dart';
4 import 'dart:math';
5
6 xtime(name, body) => null;
7 time(name, body) {
8 print('$name: => ${statMeasure(body)}');
9 }
10
11 statMeasure(body) {
12 var list = [];
13 var count = 100;
14 for(var i = 0; i < count; i++) {
15 list.add(measure(body));
16 }
17 list.sort((a, b) => (a.rate - b.rate).toInt());
18 return new StatSample(list);
19 }
20
21 measure(b) {
22 // actual test;
23 var count = 0;
24 var stopwatch = new Stopwatch();
25 var targetTime = 50 * 1000;
26 stopwatch.start();
27 do {
28 b();
29 count++;
30 } while(stopwatch.elapsedMicroseconds < targetTime);
31
32 stopwatch.reset();
33 if (count < 100) {
34 for(var i = 0; i < count; i++) {
35 b();
36 }
37 } else {
38 var repeat = count ~/ 100;
39 for(var i = 0; i < repeat; i++) {
40 //0 1 2 3 4 5 6 7 8 9
41 b(); b(); b(); b(); b(); b(); b(); b(); b(); b(); // 0
42 b(); b(); b(); b(); b(); b(); b(); b(); b(); b(); // 1
43 b(); b(); b(); b(); b(); b(); b(); b(); b(); b(); // 2
44 b(); b(); b(); b(); b(); b(); b(); b(); b(); b(); // 3
45 b(); b(); b(); b(); b(); b(); b(); b(); b(); b(); // 4
46 b(); b(); b(); b(); b(); b(); b(); b(); b(); b(); // 5
47 b(); b(); b(); b(); b(); b(); b(); b(); b(); b(); // 6
48 b(); b(); b(); b(); b(); b(); b(); b(); b(); b(); // 7
49 b(); b(); b(); b(); b(); b(); b(); b(); b(); b(); // 8
50 b(); b(); b(); b(); b(); b(); b(); b(); b(); b(); // 9
51 }
52 }
53 stopwatch.stop();
54 int elapsed = max(1, stopwatch.elapsedMicroseconds);
55 return new Sample(count, elapsed);
56 }
57
58 main() {}
59
60 class StatSample {
61 num meanAll = 0;
62 num varianceAll = 0;
63 num mean = 0;
64 num variance = 0;
65
66 StatSample(l) {
67 meanAll = l.fold(0, meanFoldFn) / l.length;
68 varianceAll = computeVariance(l);
69
70 var n = l.length;
71 var lower = (n*.5).toInt();
72 var upper = n - (n*.05).toInt();
73 l = l.getRange(lower, upper).toList();
74 mean = l.fold(0, meanFoldFn) / l.length;
75 variance = computeVariance(l);
76 }
77
78 meanFoldFn(p, e) => p + e.rate;
79 sumSqrsFn(p, e) => p + (mean-e.rate)*(mean-e.rate);
80 sumDiffFn(p, e) => p + (mean-e.rate);
81 get mean_ops_sec => mean * 1000000;
82 computeVariance(l) {
83 var n = l.length;
84 var sumDiffs = l.fold(0, sumDiffFn);
85 var sumSqrs = l.fold(0, sumSqrsFn);
86
87 return (sumSqrs - sumDiffs*sumDiffs/n)/(n - 1);
88 }
89
90 toString() {
91 var nf = new NumberFormat.decimalPattern()..maximumFractionDigits = 0;
92 var nfp = new NumberFormat.decimalPattern()..maximumFractionDigits = 5;
93
94 return '${nf.format(mean_ops_sec)} ops/sec ' +
95 '(${nf.format(1 / mean)} us) ' +
96 'stdev(${nfp.format(sqrt(variance))})';
97 }
98 }
99
100 class Sample {
101 num count;
102 num time_us;
103
104 Sample(this.count, this.time_us);
105
106 get rate => count / time_us;
107
108 toString() => rate;
109 }
OLDNEW
« no previous file with comments | « third_party/pkg/angular/perf.sh ('k') | third_party/pkg/angular/perf/dom/_perf.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698