Wed, 31 Dec 2014 06:09:35 +0100
Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.
1 var tls = require('tls'),
2 frames = require('../fixtures/frames');
4 var uri = require('url').parse(process.argv[2]),
5 host = uri.hostname,
6 port = +uri.port,
7 url = uri.path;
9 frames.createSynStream(host, url, function(syn_stream) {
10 var start = +new Date,
11 num = 3000;
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 });
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 });
28 return socket;
29 };
31 function batch(port, host, data, parallel, num, callback) {
32 var left = num,
33 done = 0;
35 for (var i = 0; i < parallel; i++) {
36 run(i);
37 }
39 function run(i) {
40 left--;
41 if (left < 0) return;
43 request(port, host, data, function() {
44 if (++done === num) return callback();
45 run(i);
46 });
47 }
48 };