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

内存泄漏的bug修复了,太好了:

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

于 2012-06-25T05:06:06.247 回答