Chromium Code Reviews| 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 |