testing/xpcshell/node-spdy/test/benchmarks/syn.js

changeset 0
6474c204b198
equal deleted inserted replaced
-1:000000000000 0:5631d05a3a15
1 var tls = require('tls'),
2 frames = require('../fixtures/frames');
3
4 var uri = require('url').parse(process.argv[2]),
5 host = uri.hostname,
6 port = +uri.port,
7 url = uri.path;
8
9 frames.createSynStream(host, url, function(syn_stream) {
10 var start = +new Date,
11 num = 3000;
12
13 batch(port, host, syn_stream, 100, num, function() {
14 var end = +new Date;
15 console.log('requests/sec : %d', 1000 * num / (end - start));
16 });
17 });
18
19 function request(port, host, data, callback) {
20 var socket = tls.connect(port, host, {NPNProtocols: ['spdy/2']}, function() {
21 socket.write(data);
22 socket.once('data', function() {
23 socket.destroy();
24 callback();
25 });
26 });
27
28 return socket;
29 };
30
31 function batch(port, host, data, parallel, num, callback) {
32 var left = num,
33 done = 0;
34
35 for (var i = 0; i < parallel; i++) {
36 run(i);
37 }
38
39 function run(i) {
40 left--;
41 if (left < 0) return;
42
43 request(port, host, data, function() {
44 if (++done === num) return callback();
45 run(i);
46 });
47 }
48 };

mercurial