blob: 28841cca48e0e0cf76303e316e667893db8efbcb [file] [log] [blame]
<!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>