dnode утечка памяти?
Я хочу проверить производительность 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)
};
};
1 ответ
Решение
Исправлена ошибка утечки памяти: