OLD | NEW |
---|---|
1 const StructuredClonePerfTestRunner = (function() { | 1 const StructuredClonePerfTestRunner = (function() { |
2 function pingPong(data) { | 2 function pingPong(data) { |
3 return new Promise((resolve, reject) => { | 3 return new Promise((resolve, reject) => { |
4 let beginSerialize, endSerialize, beginDeserialize; | 4 let beginSerialize, endSerialize, beginDeserialize; |
5 window.addEventListener('message', function listener(e) { | 5 window.addEventListener('message', function listener(e) { |
6 try { | 6 try { |
7 e.data; // Force deserialization. | 7 e.data; // Force deserialization. |
8 const endDeserialize = PerfTestRunner.now(); | 8 const endDeserialize = PerfTestRunner.now(); |
9 window.removeEventListener('message', listener); | 9 window.removeEventListener('message', listener); |
10 resolve([endSerialize - beginSerialize, endDeserialize - beginDeserial ize]); | 10 resolve([endSerialize - beginSerialize, endDeserialize - beginDeserial ize]); |
(...skipping 10 matching lines...) Expand all Loading... | |
21 | 21 |
22 return { | 22 return { |
23 measureTimeAsync(test) { | 23 measureTimeAsync(test) { |
24 let isDone = false; | 24 let isDone = false; |
25 PerfTestRunner.prepareToMeasureValuesAsync({ | 25 PerfTestRunner.prepareToMeasureValuesAsync({ |
26 description: test.description, | 26 description: test.description, |
27 unit: 'ms', | 27 unit: 'ms', |
28 warmUpCount: test.warmUpCount || 10, | 28 warmUpCount: test.warmUpCount || 10, |
29 iterationCount: test.iterationCount || 250, | 29 iterationCount: test.iterationCount || 250, |
30 done() { isDone = true; }, | 30 done() { isDone = true; }, |
31 run() { }, | |
Xianzhu
2017/05/03 22:06:26
Change this line to
run: pingPongUtilDone,
and r
nednguyen
2017/05/04 00:10:32
Done. Nice catch!
| |
31 }); | 32 }); |
32 | 33 |
33 function pingPongUntilDone() { | 34 function pingPongUntilDone() { |
34 pingPong(test.data).then(([serializeTime, deserializeTime]) => { | 35 pingPong(test.data).then(([serializeTime, deserializeTime]) => { |
35 console.log([serializeTime, deserializeTime]); | 36 console.log([serializeTime, deserializeTime]); |
36 if (test.measure === 'serialize') | 37 if (test.measure === 'serialize') |
37 PerfTestRunner.measureValueAsync(serializeTime); | 38 PerfTestRunner.measureValueAsync(serializeTime); |
38 else if (test.measure === 'deserialize') | 39 else if (test.measure === 'deserialize') |
39 PerfTestRunner.measureValueAsync(deserializeTime); | 40 PerfTestRunner.measureValueAsync(deserializeTime); |
40 if (!isDone) pingPongUntilDone(); | 41 if (!isDone) pingPongUntilDone(); |
41 }); | 42 }); |
42 } | 43 } |
43 pingPongUntilDone(); | 44 pingPongUntilDone(); |
44 }, | 45 }, |
45 }; | 46 }; |
46 })(); | 47 })(); |
OLD | NEW |