mirror of
https://github.com/classilla/tenfourfox.git
synced 2024-10-22 02:25:05 +00:00
52 lines
1.1 KiB
JavaScript
52 lines
1.1 KiB
JavaScript
var tls = require('tls'),
|
|
frames = require('../fixtures/frames');
|
|
|
|
var uri = require('url').parse(process.argv[2]),
|
|
host = uri.hostname,
|
|
port = +uri.port,
|
|
url = uri.path;
|
|
|
|
frames.createSynStream(host, url, function(syn_stream) {
|
|
var start = +new Date,
|
|
num = 3000;
|
|
|
|
batch(port, host, syn_stream, 100, num, function() {
|
|
var end = +new Date;
|
|
console.log('requests/sec : %d', 1000 * num / (end - start));
|
|
});
|
|
});
|
|
|
|
function request(port, host, data, callback) {
|
|
var socket = tls.connect(port, host, {
|
|
NPNProtocols: ['spdy/2'],
|
|
ALPNProtocols: ['spdy/2']
|
|
}, function() {
|
|
socket.write(data);
|
|
socket.once('data', function() {
|
|
socket.destroy();
|
|
callback();
|
|
});
|
|
});
|
|
|
|
return socket;
|
|
};
|
|
|
|
function batch(port, host, data, parallel, num, callback) {
|
|
var left = num,
|
|
done = 0;
|
|
|
|
for (var i = 0; i < parallel; i++) {
|
|
run(i);
|
|
}
|
|
|
|
function run(i) {
|
|
left--;
|
|
if (left < 0) return;
|
|
|
|
request(port, host, data, function() {
|
|
if (++done === num) return callback();
|
|
run(i);
|
|
});
|
|
}
|
|
};
|