48 lines
1.4 KiB
JavaScript
48 lines
1.4 KiB
JavaScript
'use strict';
|
|
|
|
const benchmark = require('benchmark');
|
|
const crypto = require('crypto');
|
|
|
|
const Sender = require('../').Sender;
|
|
|
|
const data1 = crypto.randomBytes(64);
|
|
const data2 = crypto.randomBytes(16 * 1024);
|
|
const data3 = crypto.randomBytes(64 * 1024);
|
|
const data4 = crypto.randomBytes(200 * 1024);
|
|
const data5 = crypto.randomBytes(1024 * 1024);
|
|
|
|
const opts1 = {
|
|
readOnly: false,
|
|
mask: false,
|
|
rsv1: false,
|
|
opcode: 2,
|
|
fin: true
|
|
};
|
|
const opts2 = {
|
|
readOnly: true,
|
|
rsv1: false,
|
|
mask: true,
|
|
opcode: 2,
|
|
fin: true
|
|
};
|
|
|
|
const suite = new benchmark.Suite();
|
|
|
|
suite.add('frame, unmasked (64 B)', () => Sender.frame(data1, opts1));
|
|
suite.add('frame, masked (64 B)', () => Sender.frame(data1, opts2));
|
|
suite.add('frame, unmasked (16 KiB)', () => Sender.frame(data2, opts1));
|
|
suite.add('frame, masked (16 KiB)', () => Sender.frame(data2, opts2));
|
|
suite.add('frame, unmasked (64 KiB)', () => Sender.frame(data3, opts1));
|
|
suite.add('frame, masked (64 KiB)', () => Sender.frame(data3, opts2));
|
|
suite.add('frame, unmasked (200 KiB)', () => Sender.frame(data4, opts1));
|
|
suite.add('frame, masked (200 KiB)', () => Sender.frame(data4, opts2));
|
|
suite.add('frame, unmasked (1 MiB)', () => Sender.frame(data5, opts1));
|
|
suite.add('frame, masked (1 MiB)', () => Sender.frame(data5, opts2));
|
|
|
|
suite.on('cycle', (e) => console.log(e.target.toString()));
|
|
|
|
if (require.main === module) {
|
|
suite.run({ async: true });
|
|
} else {
|
|
module.exports = suite;
|
|
}
|