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

Side by Side Diff: third_party/WebKit/PerformanceTests/Bindings/resources/structured-clone-perf-test.js

Issue 2858783003: Refactor prepareToMeasureValuesAsync to startMeasureValuesAsyn which run test through callback (Closed)
Patch Set: update Created 3 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
OLDNEW
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
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 })();
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698