arnaucube
arnaucube/raspberryGPIOhtmlserverPublic Self-hosted repository
raspberryGPIOhtmlserver/node_modules/ws/bench/sender.benchmark.js
node_modules/ws/bench/sender.benchmark.jsRaw
 1/*!
 2 * ws: a node.js websocket client
 3 * Copyright(c) 2011 Einar Otto Stangvik <einaros@gmail.com>
 4 * MIT Licensed
 5 */
 6
 7/**
 8 * Benchmark dependencies.
 9 */
10
11var benchmark = require('benchmark')
12  , Sender = require('../').Sender
13  , suite = new benchmark.Suite('Sender');
14require('tinycolor');
15require('./util');
16
17/**
18 * Setup sender.
19 */
20 
21suite.on('start', function () {
22  sender = new Sender();
23  sender._socket = { write: function() {} };
24});
25
26suite.on('cycle', function () {
27  sender = new Sender();
28  sender._socket = { write: function() {} };
29});
30
31/**
32 * Benchmarks
33 */
34
35framePacket = new Buffer(200*1024);
36framePacket.fill(99);
37suite.add('frameAndSend, unmasked (200 kB)', function () {
38  sender.frameAndSend(0x2, framePacket, true, false);
39});
40suite.add('frameAndSend, masked (200 kB)', function () {
41  sender.frameAndSend(0x2, framePacket, true, true);
42});
43
44/**
45 * Output progress.
46 */
47
48suite.on('cycle', function (bench, details) {
49  console.log('\n  ' + suite.name.grey, details.name.white.bold);
50  console.log('  ' + [
51      details.hz.toFixed(2).cyan + ' ops/sec'.grey
52    , details.count.toString().white + ' times executed'.grey
53    , 'benchmark took '.grey + details.times.elapsed.toString().white + ' sec.'.grey
54    , 
55  ].join(', '.grey));
56});
57
58/**
59 * Run/export benchmarks.
60 */
61
62if (!module.parent) {
63  suite.run();
64} else {
65  module.exports = suite;
66}