Tag: node memwatch

Node.js,SQLite3和Express – POST上潜在的内存泄漏

我对node.js比较陌生,而且我的任务是编写一个简单的消息队列应用程序 – 基本上,应用程序将收到一个post,其中包含一些消息数据和客户端的mac地址,然后将其解码并插入到sqlite数据库,稍后由一个单独的进程发布。 一切工作正常,但我们正在经历什么可能是内存泄漏。 使用memwatch模块,我已经把漏洞缩小到我们的代码处理传入的post,我已经包括在下面: app.route('*') .post(function(req, res){ var mac = decodeURI(unescape(req.param('mac').replace(/\+/g, "%20"))); var data = decodeURI(unescape(req.param('data').replace(/\+/g, "%20"))); req = null; db.run("INSERT INTO queue (mac, data) VALUES (?,?)", [mac, data], function(er){ if(er) { res.writeHead(500, "Insert to queue failed", {'Content-Type': 'text/html'}); res.end(); } else { res.writeHead(200, "OK", {'Content-Type': 'text/html'}); res.end(); } res = null; mac = […]

节点memwatch:泄漏typesnative

我有一个节点的应用程序随着时间的推移而减慢。 读取https://hacks.mozilla.org/2012/11/tracking-down-memory-leaks-in-node-js-a-node-js-holiday-season/似乎我有一个内存泄漏和v8 gc正在放慢我的应用程序。 所以我试过节点memwatch,但相关的结果是 { what: 'Native', size_bytes: 18853040, size: '17.98 mb', '+': 2247, '-': 116 }, 但我不知道在我的代码库中search什么。 我认为原生v8function,但我被锁在这里。 所以如果我们曾经试验过,谢谢你的回答。

用memwatch进一步查找内存泄漏

最近我用node.js开始了我的第一个项目,我可以肯定地说我很喜欢它。 非常强大的所有模块; 然而,似乎我有一个“轻微的”内存泄漏,导致我的服务器大约一个小时后(崩溃的99-100%的CPU)崩溃。 我一直在试图解决这个问题一段时间了。 幸运的是,经过一番search之后,我发现了一个名为memwatch的stream行工具。 我当然安装了模块,并开始logging我的服务器进程的内存使用情况/存储。 最后,在查看日志后,我发现可能的原因。 { "what": "String", "size_bytes": 9421368, "size": "8.98 mb", "+": 16635, "-": 533 } 当然,在30秒之内,这个小小的疯子提高了9mb(很不寻常)。 这是很好的,很高兴知道我的内存泄漏似乎是stringtypes,但我到底从哪里去? 有什么办法可以得到更准确的结果吗? 我查看了我的代码,但是在我的代码中确实没有可能像这样生长的string 。 有没有可能这个string实际上不是我的代码的一部分,更多的是节点或Socket.IO模块的一部分?