1

dnodeのパフォーマンスをテストしたいので、クライアントからサーバーに文字列を送信し、サーバーが同じ文字列でクライアントにコールバックしようとします。サーバーのメモリ使用量は常に増加しており、691回の呼び出し後にサーバーがクラッシュしました。それは私のJavaScriptコードが間違っていましたか?この問題を解決するためのアイデアはありますか?どうもありがとう!

クライアント:

// client:  
var DNode = require('dnode');  
var sys = require('sys');  

DNode(function () {
    this.clientCall = function() {
        sys.puts("... client call!");
    };
}).connect("192.168.1.201", 6060, {reconnect:1000}, function (remote, con) {  
    sys.puts("server Connected!");

    var cnt = 0;

    var str = '';
    for(var i=0; i<1024 * 1024; ++i)
    {
        str += 'a';
    }

    function func2() {
        remote.func1(str, function(str) {
            cnt ++;
            sys.puts("" + cnt + ": " + str.length);
            if(cnt < 1000)
            {
                process.nextTick(function () {
                    func2();
                });
            }
        });
    }

    process.nextTick(function () {
        func2();
    });

});  

sys.puts("Client running!")

サーバ:

// server:  
var DNode = require('dnode');  
      var sys = require('sys'); 

var server = DNode(ChatServer).listen(6060);

function ChatServer (client, con) {
    var cnt=0;

    this.func1 = function (str, f) {cnt++;
        sys.puts(cnt);
        f(str)
    };
};
4

1 に答える 1

1

メモリ リークのバグが修正されました。

https://github.com/substack/dnode/issues/98#issuecomment-6524256

于 2012-06-25T05:06:06.247 に答える