Tag: memory leaks

Node.js + Mongoose消耗插入的所有内存

我需要填写大约8000万条logging //Example { "_id" : "4gtvCPATZ", "isActivated" : false } 其中_id是随机生成的。 我使用Node.js Express和Mongoose来做到这一点: app.get('/api/codes', function(req, res) { for (var i = 0; i < 100000; i++) { var code = new Code({ _id: randomStr(9), isActivated: 0 }); code.save(); code = null; } res.render('index'); }); function randomStr(m) { var m = m || 9; s = […]

NodeJS / node-ffi:内存泄漏/variables范围

我正在调查我的nodejs脚本中的内存泄漏。 请考虑下面的代码块(整个源代码将在底部)。 GetImage调用一个C函数来分配一个缓冲区,并且调用者有责任释放它。 在res.send(data)行后, var dataPtr会在GC期间被释放? app.get('/test', function(req, res) { res.contentType('image/jpeg'); var lengthPtr = ref.alloc('uint'); var dataPtr = ref.alloc('uchar*'); lib.GetImage(dataPtr, lengthPtr); var length = lengthPtr.deref(); var data = ref.reinterpret(ref.deref(dataPtr), length); res.send(data); }); 处理大约20000个请求后出现错误消息: Error: reinterpret: Cannot reinterpret from NULL pointer at Object.reinterpret (/home/ltse/LinuxPort/Experiments/NodeAddon/node_modules/ref/lib/ref.js:773:21) at Object.handle (/home/ltse/LinuxPort/Experiments/NodeAddon/ffi.js:20:17) at next_layer (/home/ltse/LinuxPort/Experiments/NodeAddon/node_modules/express/lib/router/route.js:103:13) at Route.dispatch (/home/ltse/LinuxPort/Experiments/NodeAddon/node_modules/express/lib/router/route.js:107:5) at /home/ltse/LinuxPort/Experiments/NodeAddon/node_modules/express/lib/router/index.js:213:24 at […]

Node.js – 大量的发送请求到另一台服务器导致内存泄漏

我有一个节点的应用程序,使用restify大量的请求到另一台服务器。 随着请求数量的增加,内存不断增长,最终导致应用程序崩溃。 以下是我的代码的片段。 var restify = require('restify'); var client = restify.createStringClient({ url: "https://api-3t.sandbox.paypal.com/nvp" }); function makeRequest(cb) { counter++; client.post({ headers: null }, null, function(err, req, res, data) { if(err) { cb(err, req, res, data); } else { cb(null, req, res, data); } }); } function makeRequestCb(error,request,response,data){ counter++; console.log("result",counter); } setInterval(function(){ makeRequest(makeRequestCb) }, 1000); 在chrome中检查堆快照时,我发现“缓冲区”占用了大部分空间。 我也尝试使用'请求'模块而不是'restify'我在这里做错了什么。 […]

MaxListenersExceededWarning – 回送

我收到以下错误: (node:18591) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 wakeup listeners added. Use emitter.setMaxListeners() to increase limit. 在执行发送推送通知的脚本之后。 我使用“node-gcm”和“apn”npm模块分别发送android和ios推送通知。 我用来发送通知的代码是: 安卓: async.each(tokenBatches, function (batch) { // Assuming you already set up the sender and message sender.send(message, {registrationIds: batch}, function (err, result) { // Push failed? if (err) { // Stops executing other batches console.log(err); } […]

确定NodeJS中RSS内存泄漏的原因

我最近偶然发现从MongoDB迁移到Postgresql后,Node.js应用程序中的内存泄漏。 代码在Node.js v 0.10.x上运行。 代码和它的依赖是100%写在JS中。 我正在使用pg.js模块来访问数据库。 问题是,我看到节点的RSS增长(直到进程崩溃),而不是堆,而不是V8外部存储器(通过–trace_external_memory标志logging)。 这就是为什么没有任何工具在V8堆中发现泄漏正在帮助我。 什么可能是这个内存泄漏的原因? 例如,是否有可能有泄漏相关的Buffer实例不会出现在外部存储器日志?

节点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,但我被锁在这里。 所以如果我们曾经试验过,谢谢你的回答。

内存泄漏在Node.js刮刀

这是一个使用Node.js编写的JavaScript简单的刮板,用于抓取Wikipedia中的元素周期表数据。 依赖关系是用于DOM操作的jsdom和用于排队的chain-gang 。 它工作得很好,大部分时间(它不能很好地处理错误),代码也不错,我敢说是一个尝试,但是有一个严重的错误 – 它泄漏内存可怕,在任何地方从每个元素的计算机内存的0.3%到0.6%,这样当它领先的时候,它会在接近20%的地方使用,这显然是不可接受的。 我已经尝试使用分析器,但是我没有发现它们有帮助或难以解释数据。 我怀疑它与processElement传递的方式有关,但我很难将队列代码重写成更优雅的东西。 var fs = require('fs'), path = require('path'), jsdom = require("jsdom"), parseUrl = require('url').parse, chainGang = require('chain-gang'); var chain = chainGang.create({ workers: 1 }); var Settings = { periodicUrl: 'http://en.wikipedia.org/wiki/Template:Periodic_table', periodicSelector: '#bodyContent > table:first', pathPrefix: 'data/', ignoredProperties: ['Pronunciation'] }; function writeToFile(output) { var keys = 0; // Huge […]