Node.js应用程序在24小时后运行缓慢,原因可能是什么?

时间:2016-10-15 19:01:02

标签: javascript node.js box2dweb

我'我正在开发多人游戏,服务器端用node.ds和box2dweb编写。服务器位于它的ubuntu 15 LTS(1GB RAM)虚拟机上。当我在几个小时内开始游戏时,游戏运行良好,但是在大约24小时后游戏速度减慢,即使在最近22小时内没有人玩过,最后一个对象在23小时前产生。我尝试使用node.js探查器,但是当我启动应用程序和应用程序工作一天后,我的结果非常相似。我该怎么办?我的问题可能的原因是什么?

我在10分钟内监控了功能的时间使用情况,结果如下:

gamelogic.update()~40%

b2dWorld.update()~47%

我的专业代码:

var profiler = require('v8-profiler');
var fs = require('fs');
var startProfiling = function(duration){
    profiler.startProfiling('1', true);
    setTimeout(function(){
        var profile1 = profiler.stopProfiling('1');

        profile1.export(function(error, result) {
            fs.writeFile('./profile.cpuprofile', result);
            profile1.delete();
            console.log("Profile saved.");
        });
    },duration);
}
setTimeout(function(){
    startProfiling(1000 * 60 * 10);
},1000 * 60 * 60 * 24);

我应该在删除套接字之前停止在socekt上监听套接字事件吗?

bash shell中的最佳结果: - 运行10分钟后10%CPU使用率和8%RAM使用率 - 运行80%CPU使用率和30%RAM使用率4天后

测量时我在游戏中拥有相同数量的游戏对象+一个连接到服务器的玩家。

我收到来自node.js"(node:1324)的消息警告:检测到可能的EventEmitter内存泄漏。 11个upgradeRequest监听器添加了。使用emitter.setMaxListeners()来增加限制"在删除需要太多同一个监听器的套接字之后从这个停留垃圾吗?

0 个答案:

没有答案