我在Node.js应用程序(使用标准net.Socket)和其他一些应用程序之间有一个常规的TCP套接字连接。
假设我发送1MB缓冲区:
socket.write(new Buffer(1048576));
虽然这是以非阻塞方式完成的,但显然数据不会立即传输。
如何从我的Node.js应用程序中测量底层系统发送内部流缓冲区的数据速率?
最后,我只需要知道在过去几秒内发送到客户端的数据的平均速度。这可能吗?
答案 0 :(得分:3)
var net = require('net');
var s = net.createConnection(8888);
s.on('connect', function() {
function test() {
var len = 512*1048576;
var start = +new Date();
var b = new Buffer(len);
b.fill('x');
s.write(b, function() {
console.log(len + ' bytes written, ' + (1000*len/(+new Date() - start)).toString() + ' bytes/sec');
test();
});
}
test();
});
另一端nc -l 8888 > /dev/null
我得到350M字节/秒