| OLD | NEW |
| 1 dart_library.library('BenchmarkBase', null, /* Imports */[ | 1 dart_library.library('BenchmarkBase', null, /* Imports */[ |
| 2 "dart_runtime/dart", | 2 "dart_runtime/dart", |
| 3 'dart/core' | 3 'dart/core' |
| 4 ], /* Lazy imports */[ | 4 ], /* Lazy imports */[ |
| 5 ], function(exports, dart, core) { | 5 ], function(exports, dart, core) { |
| 6 'use strict'; | 6 'use strict'; |
| 7 let dartx = dart.dartx; | 7 let dartx = dart.dartx; |
| 8 class Expect extends core.Object { | 8 class Expect extends core.Object { |
| 9 static equals(expected, actual) { | 9 static equals(expected, actual) { |
| 10 if (!dart.equals(expected, actual)) { | 10 if (!dart.equals(expected, actual)) { |
| 11 dart.throw(`Values not equal: ${expected} vs ${actual}`); | 11 dart.throw(`Values not equal: ${expected} vs ${actual}`); |
| 12 } | 12 } |
| 13 } | 13 } |
| 14 static listEquals(expected, actual) { | 14 static listEquals(expected, actual) { |
| 15 if (expected[dartx.length] != actual[dartx.length]) { | 15 if (expected[dartx.length] != actual[dartx.length]) { |
| 16 dart.throw(`Lists have different lengths: ${expected[dartx.length]} vs $
{actual[dartx.length]}`); | 16 dart.throw(`Lists have different lengths: ${expected[dartx.length]} vs $
{actual[dartx.length]}`); |
| 17 } | 17 } |
| 18 for (let i = 0; dart.notNull(i) < dart.notNull(actual[dartx.length]); i =
dart.notNull(i) + 1) { | 18 for (let i = 0; dart.notNull(i) < dart.notNull(actual[dartx.length]); i =
dart.notNull(i) + 1) { |
| 19 Expect.equals(expected[dartx.get](i), actual[dartx.get](i)); | 19 dart.dcall(Expect.equals, expected[dartx.get](i), actual[dartx.get](i)); |
| 20 } | 20 } |
| 21 } | 21 } |
| 22 fail(message) { | 22 fail(message) { |
| 23 dart.throw(message); | 23 dart.throw(message); |
| 24 } | 24 } |
| 25 } | 25 } |
| 26 dart.setSignature(Expect, { | 26 dart.setSignature(Expect, { |
| 27 methods: () => ({fail: [dart.dynamic, [dart.dynamic]]}), | 27 methods: () => ({fail: [dart.dynamic, [dart.dynamic]]}), |
| 28 statics: () => ({ | 28 statics: () => ({ |
| 29 equals: [dart.void, [dart.dynamic, dart.dynamic]], | 29 equals: [dart.void, [dart.dynamic, dart.dynamic]], |
| 30 listEquals: [dart.void, [core.List, core.List]] | 30 listEquals: [dart.void, [core.List, core.List]] |
| 31 }), | 31 }), |
| 32 names: ['equals', 'listEquals'] | 32 names: ['equals', 'listEquals'] |
| 33 }); | 33 }); |
| 34 class BenchmarkBase extends core.Object { | 34 class BenchmarkBase extends core.Object { |
| 35 BenchmarkBase(name) { | 35 BenchmarkBase(name) { |
| 36 this.name = name; | 36 this.name = name; |
| 37 } | 37 } |
| 38 run() {} | 38 run() {} |
| 39 warmup() { | 39 warmup() { |
| 40 this.run(); | 40 dart.dcall(this.run); |
| 41 } | 41 } |
| 42 exercise() { | 42 exercise() { |
| 43 for (let i = 0; dart.notNull(i) < 10; i = dart.notNull(i) + 1) { | 43 for (let i = 0; dart.notNull(i) < 10; i = dart.notNull(i) + 1) { |
| 44 this.run(); | 44 dart.dcall(this.run); |
| 45 } | 45 } |
| 46 } | 46 } |
| 47 setup() {} | 47 setup() {} |
| 48 teardown() {} | 48 teardown() {} |
| 49 static measureFor(f, timeMinimum) { | 49 static measureFor(f, timeMinimum) { |
| 50 let time = 0; | 50 let time = 0; |
| 51 let iter = 0; | 51 let iter = 0; |
| 52 let watch = new core.Stopwatch(); | 52 let watch = new core.Stopwatch(); |
| 53 watch.start(); | 53 dart.dcall(watch.start); |
| 54 let elapsed = 0; | 54 let elapsed = 0; |
| 55 while (dart.notNull(elapsed) < dart.notNull(timeMinimum)) { | 55 while (dart.notNull(elapsed) < dart.notNull(timeMinimum)) { |
| 56 dart.dcall(f); | 56 dart.dcall(f); |
| 57 elapsed = watch.elapsedMilliseconds; | 57 elapsed = watch.elapsedMilliseconds; |
| 58 iter = dart.notNull(iter) + 1; | 58 iter = dart.notNull(iter) + 1; |
| 59 } | 59 } |
| 60 return 1000.0 * dart.notNull(elapsed) / dart.notNull(iter); | 60 return 1000.0 * dart.notNull(elapsed) / dart.notNull(iter); |
| 61 } | 61 } |
| 62 measure() { | 62 measure() { |
| 63 this.setup(); | 63 dart.dcall(this.setup); |
| 64 BenchmarkBase.measureFor(dart.fn(() => { | 64 dart.dcall(BenchmarkBase.measureFor, dart.fn(() => { |
| 65 this.warmup(); | 65 dart.dcall(this.warmup); |
| 66 }), 100); | 66 }), 100); |
| 67 let result = BenchmarkBase.measureFor(dart.fn(() => { | 67 let result = dart.dcall(BenchmarkBase.measureFor, dart.fn(() => { |
| 68 this.exercise(); | 68 dart.dcall(this.exercise); |
| 69 }), 2000); | 69 }), 2000); |
| 70 this.teardown(); | 70 dart.dcall(this.teardown); |
| 71 return result; | 71 return result; |
| 72 } | 72 } |
| 73 report() { | 73 report() { |
| 74 let score = this.measure(); | 74 let score = dart.dcall(this.measure); |
| 75 core.print(`${this.name}(RunTime): ${score} us.`); | 75 dart.dcall(core.print, `${this.name}(RunTime): ${score} us.`); |
| 76 } | 76 } |
| 77 } | 77 } |
| 78 dart.setSignature(BenchmarkBase, { | 78 dart.setSignature(BenchmarkBase, { |
| 79 constructors: () => ({BenchmarkBase: [BenchmarkBase, [core.String]]}), | 79 constructors: () => ({BenchmarkBase: [BenchmarkBase, [core.String]]}), |
| 80 methods: () => ({ | 80 methods: () => ({ |
| 81 run: [dart.void, []], | 81 run: [dart.void, []], |
| 82 warmup: [dart.void, []], | 82 warmup: [dart.void, []], |
| 83 exercise: [dart.void, []], | 83 exercise: [dart.void, []], |
| 84 setup: [dart.void, []], | 84 setup: [dart.void, []], |
| 85 teardown: [dart.void, []], | 85 teardown: [dart.void, []], |
| 86 measure: [core.double, []], | 86 measure: [core.double, []], |
| 87 report: [dart.void, []] | 87 report: [dart.void, []] |
| 88 }), | 88 }), |
| 89 statics: () => ({measureFor: [core.double, [core.Function, core.int]]}), | 89 statics: () => ({measureFor: [core.double, [core.Function, core.int]]}), |
| 90 names: ['measureFor'] | 90 names: ['measureFor'] |
| 91 }); | 91 }); |
| 92 // Exports: | 92 // Exports: |
| 93 exports.Expect = Expect; | 93 exports.Expect = Expect; |
| 94 exports.BenchmarkBase = BenchmarkBase; | 94 exports.BenchmarkBase = BenchmarkBase; |
| 95 }); | 95 }); |
| OLD | NEW |