| <!DOCTYPE html> |
| <html> |
| <head> |
| <script src="../resources/runner.js"></script> |
| </head> |
| <body> |
| <script> |
| // To run this perf test, you need to run the web socket server: |
| // $ cd third_party/blink/perf_tests/websocket |
| // $ npm install |
| // $ npm start |
| // $ python ../../../../tools/perf/run_benchmark run blink_perf --browser=canary --test-path=websocket\receive-arraybuffer-1MBx100.html |
| |
| const params = (new URL(document.location)).searchParams; |
| const server = params.get("server") || "ws://127.0.0.1:8001/"; |
| PerfTestRunner.log("Connect to " + server); |
| const iteration = params.get("iteration") || 6; |
| |
| async function runTestCase() { |
| const ws = new WebSocket(server); |
| ws.binaryType = "arraybuffer"; |
| const onOpen = new Promise(resolve => { |
| ws.onopen = () => { |
| PerfTestRunner.addRunTestStartMarker(); |
| resolve(PerfTestRunner.now()); |
| }; |
| }); |
| const onClose = new Promise(resolve => { |
| ws.onclose = () => { |
| PerfTestRunner.addRunTestEndMarker(); |
| resolve(PerfTestRunner.now()); |
| } |
| }); |
| const [openTime, closeTime] = await Promise.all([onOpen, onClose]); |
| const executeTimeInSeconds = (closeTime - openTime) / 1000; |
| const downloadSpeedInMegaBytesPerSecond = 100 / executeTimeInSeconds; |
| PerfTestRunner.measureValueAsync(downloadSpeedInMegaBytesPerSecond); |
| } |
| |
| let isDone = false; |
| PerfTestRunner.startMeasureValuesAsync({ |
| description: "Measure performance of receiving 1MB array 100 times.", |
| unit: 'MB/s', |
| done: function () { |
| isDone = true; |
| }, |
| run: async function() { |
| while (!isDone) await runTestCase(); |
| }, |
| iterationCount: iteration, |
| }); |
| </script> |
| </body> |
| </html> |