-4

毎秒のシステム負荷を示すリアルタイム チャートを作成しました。ローカル マシンでは正常に動作しますが、サーバーにデプロイした後、データがサーバーから送り返されるまでに長い遅延があります。また、データが毎秒返されることを除いて、不規則な間隔でデータが送信されます。

io.sockets.on('connection',function (socket) {
    var sysinfo = setInterval(function(){
        socket.emit('system_info',{
            time:Date.now(),
            load:os.loadavg(),
            memory:os.totalmem()-os.freemem()
        });
    },3000);

    socket.on('disconnect',function(){
        clearInterval(sysinfo);
    });
});

これがチャートです

ここにソースコードがあります

4

1 に答える 1

1

さて、あなたはそれを「毎秒」と説明しましたが、間隔は3000「または3ごと」に設定されています。

不規則な間隔」の場合、間隔が正確であるとは限りません。

グローバルから:

実際の間隔は、OS タイマーの粒度やシステム負荷などの外部要因によって異なる場合があることに注意してください。決して短くはありませんmsが、長くなる可能性があります。

タイマーから:

コールバックはおそらく正確にdelayミリ秒単位で呼び出されるわけではないことに注意することが重要です。Node.js は、コールバックが起動する正確なタイミングや、起動する順序について保証しません。コールバックは close として呼び出されます。なるべく指定の時間まで。

于 2012-12-16T05:14:34.080 に答える