Tag: 内存

监视目录中的更改 – 潜在的高内存

我目前在nodeJS中使用一个脚本来监视一个目录(和它的子目录),并且一旦文件被放置在那里,就执行一些function。 实际上,这将是一个FTP,在这里用户上传文件,进行处理,然后删除。 显然,我已经看到脚本的CPU使用量很高,因为它遍历目录,等待文件可见。 但令我担心的是脚本运行的时间越长,内存使用率越高(它只是呈指数级增长)。 有一些轻量级的方法来监视一个目录的变化? 谢谢! 编辑:我目前正在使用手表树 ,这是伟大的,但仍有增加内存的问题。

NodeJS具有内存压力感知的内存caching

我来自Java世界,并且有很多(本地)内存caching的实现。 而且在Java世界里有SoftReference和WeakReference ,根据定义,它们是caching实现的理想select。 我知道,JavaScript没有类似的东西,所以我想知道是否有可能有某种cachingfunction,如果有“低内存压力”,将删除/释放(所有)caching对象。 到目前为止,我知道lru-cache模块,但是它的实现保存了一些数目/大小的对象,这很好,但还不够好,因为如果没有足够的内存。 当进程内存不足时,甚至有可能从系统中获取NodeJS中的一些事件? 或者也许有些图书馆可能引发一个事件,例如: var cmmm = require('cool_memory_management_module'); cmmm.on('low_memory', function(){ //signaling to clear cache entries }); 到目前为止,我已经find了npm memwatch和npm使用模块,但仍然无法将所有这些组件结合在一起。

使用Node.js服务器debugging内存泄漏

我们有一个内存泄漏导致我们的节点服务器耗尽进程内存。 什么是一些build议/工具,可以帮助我们debugging呢?

node.js – 可能的http服务器内存泄漏

Nodejs版本:0.8.8 这是服务器: var http = require('http'); var port = 1338; var ip = "127.0.0.1"; http.createServer(function (req, res) { res.writeHead(200, {'Content-Type': 'text/plain'}); res.end('Hi there\n'); }).listen(port, ip); 客户端(PHP脚本)卷发到上述服务器的发布请求。 POST是一个string(json),大小约4兆字节。 正如你所看到的,服务器对发布的数据没有任何作用。 为了debugging,我删除了我所有的代码,然后回到hello世界的例子,什么都不做:) 当我看看节点进程的内存使用情况(在活动监视器,Mac应用程序中完成)时,它会报告节点服务器的内存使用量对于每个请求都是较大的。 所以20个请求后,内存使用量翻了一番。

如何监控heroku上的内存使用情况(node.js)

有Rails 新的遗物 ,但我找不到任何可用的node.js。 是否有任何工具或API来监视heroku dynos的内存使用情况?

nodejs v8内存gc分配失败

我试图用一个什么都不做的服务器来configurationnodejs v8内存。 我使用节点memwatch来获取堆差异。 在连接和连接closures之前,我收集堆信息。 我用节点memwatch。 我尝试从客户端200并发连接。 这是连接撕下后的gc轨迹。 谁能帮我理解: 为什么记忆力在​​增加? 在连接断开之后,服务器绝对没有任何作用。 它不应该总是下降,因为垃圾收集? 2.这些分配失败是什么? 我如何真正解释这里的痕迹? 15802 ms: Mark-sweep 8.9 (45.0) -> 8.1 (45.0) MB, 58 ms [allocation failure] [GC in old space forced by flags]. 16144 ms: Mark-sweep 9.2 (45.0) -> 8.4 (45.0) MB, 53 ms [allocation failure] [GC in old space forced by flags]. 16495 ms: […]

Node JS Buffer数据如何存储在幕后?

根据节点JS缓冲区文档,“缓冲区类似于整数数组,但对应于V8堆外的原始内存分配”。 没有进一步的信息给出。 问题是数据如何存储在RAM中。 节点JS缓冲区是否使用一种特殊的方式在堆上分配空间? 这是跟V8堆一样的垃圾收集吗? 我可以安全地假设缓冲区中数据的任何改变实际上改变了RAM中的数据,并且没有残留的数据留给窥探者吗? 对于这个非常广泛的问题感到抱歉,但我似乎无法find任何有关如何实际工作的材料。 我所要求的原因是因为我想确保在我的应用程序中使用的variables不会在存储器中超出需要的时间。 文档: https : //nodejs.org/api/buffer.html#buffer_class_buffer 干杯!

nodejs setTimeout内存泄漏?

v0.10.4 以下是导致内存使用量不断增加的简单循环: function redx(){ setTimeout(function(){ redx() },1000); console.log('loop'); } redx(); 我究竟做错了什么 ?? 编辑 OK,只是尝试了引用范围内的超时对象的build议,似乎大约40秒后,垃圾收集踢在这里,从TOP的缩写日志: 3941根20 0 32944 7284 4084 S 4.587 3.406 0:01.32节点 3941根20 0 32944 7460 4084 S 2.948 3.489 0:01.59节点 3941根20 0 32944 7516 4084 S 2.948 3.515 0:01.68节点 3941根20 0 33968 8400 4112 S 2.948 3.928 0:02.15节点 3941根20 0 33968 8920 4112 […]

节点为数组中的空值分配了多less内存

继续这个线程: 数组中的大量空值意味着什么危害? 我用node.js做了这个: arr=[] arr[1000]=1 arr[1000000000]=2 arr.sort() 我得到了 FATAL ERROR: JS Allocation failed – process out of memory 所以这就给我留下了问题(在Yahoogle上我找不到)为节点中的数组中的空条目实际分配了多less内存。 我不打算使用10亿条目,甚至没有closures,但也许还是不值得分配内存… 谁知道我可以检查?

是否有可能从一个NodeJS脚本的评论创build内存问题?

我编写NodeJS库,通常在代码中放入JSDoc注释,然后生成文档。 所以,我的代码如下所示: /** * Sum * Calculates the sum of two numbers. * * @name Sum * @function * @param {Number} a The first number, * @param {Number} b The second number. * @return {Number} The sum of the two numbers. */ module.exports = function (a, b) { return a + b; }; 当从另一个NodeJS脚本需要这个脚本时,上面的注释会被加载到RAM中吗? 那么,大的评论是否会影响记忆呢? […]