我想测试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)
};
};发布于 2012-06-25 13:06:06
内存泄漏的bug已经修复了,很好:
https://github.com/substack/dnode/issues/98#issuecomment-6524256
https://stackoverflow.com/questions/10749786
复制相似问题