测量通过 Node.js 套接字的数据的平均传输速率



我在 Node.js 应用程序之间有一个常规的 TCP 套接字连接(使用标准网络。套接字)和其他一些应用程序。

假设我发送一个 1MB 的缓冲区:

socket.write(new Buffer(1048576));

虽然这是以非阻塞方式完成的,但显然数据不是即时传输的。

如何测量底层系统从我的 Node.js 应用程序发送内部流缓冲区的数据速率?

最终,我只需要知道过去几秒钟内发送到另一端客户端的数据的平均速度。 这可能吗?

尝试在写入中使用回调

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 字节/秒

最新更新