| 85 | } |
| 86 | |
| 87 | function runBenchmark(ctx: Context) { |
| 88 | const options: Benchmark.Options = { |
| 89 | initCount: 1000, |
| 90 | onComplete: (e: Benchmark.Event) => { |
| 91 | const benchmark = e.target; |
| 92 | console.log('%s %d', benchmark, benchmark.count); |
| 93 | }, |
| 94 | }; |
| 95 | const suite = new Benchmark.Suite('context-bindings'); |
| 96 | suite |
| 97 | .add( |
| 98 | 'factory - getSync', |
| 99 | () => ctx.getSync('greeting.syncFactory'), |
| 100 | options, |
| 101 | ) |
| 102 | .add('factory - get', () => ctx.get('greeting.syncFactory'), options) |
| 103 | .add('asyncFactory - get', () => ctx.get('greeting.asyncFactory'), options) |
| 104 | .add( |
| 105 | 'staticProvider - getSync', |
| 106 | () => ctx.getSync('greeting.syncStaticProvider'), |
| 107 | options, |
| 108 | ) |
| 109 | .add( |
| 110 | 'staticProvider - get', |
| 111 | () => ctx.get('greeting.syncStaticProvider'), |
| 112 | options, |
| 113 | ) |
| 114 | .add( |
| 115 | 'asyncStaticProvider - get', |
| 116 | () => ctx.get('greeting.asyncStaticProvider'), |
| 117 | options, |
| 118 | ) |
| 119 | .add( |
| 120 | 'provider - getSync', |
| 121 | () => ctx.getSync('greeting.syncProvider'), |
| 122 | options, |
| 123 | ) |
| 124 | .add('provider - get', () => ctx.get('greeting.syncProvider'), options) |
| 125 | .add( |
| 126 | 'asyncProvider - get', |
| 127 | () => ctx.get('greeting.asyncProvider'), |
| 128 | options, |
| 129 | ) |
| 130 | .run({async: true}); |
| 131 | } |
| 132 | |
| 133 | if (require.main === module) { |
| 134 | const ctx = setupContextBindings(); |