Articles of 堆

Node.js之外的内存泄漏?

我刚修复了节点堆中的节点应用程序中的内存泄漏。 我已经用Google的Profiler描述了这一点,并设法修复了内存泄漏。 现在我的应用程序又运行了一段时间,我已经看到堆大小是相当稳定的。 没有内存泄漏了。 但是,当我检查我的服务器的免费RAM,我看到一个减less…当我重新启动我的节点服务器RAM是达到它的正常空闲RAM。 现在我已经听说Node.js可以保存对象和堆外的东西。 我认为这是什么导致这里的内存泄漏。 我怎样才能看到什么是占用内存? 不能真正地configuration任何东西,或者我可以吗? 我在用着: node.js:v0.8.18和socket.io:v0.9.13 我正在使用的一些其他节点模块是:nodetime,heapdump(虽然会删除这个),jquery,crypto,request和querystring。 一些图表: 免费的操作系统内存和使用的节点RSS和堆

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

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

从Node.js分析核心转储的工具

如果我使用gcore来创buildNode.js过程的代码转储,那么分析它的最佳工具是什么? 启发: 分析Java核心转储的工具 在我的具体情况,我有兴趣调查一些内存泄漏,所以我真的好奇,得到一些堆分析。 一般的工具,甚至仪器包和技术也是受欢迎的。 我发现Node.js是非常有趣的,但运行时分析工具还没有。

什么是node.js内存崩溃?

我们正在部署一个Node.js应用程序。 这个应用程序似乎正在消耗更多的RSS内存比它应该。 所以我们开始深入了解事物,并且发现了以下内容,这要感谢process.memoryUsage(); RSS内存快速增长到400MB左右,在400MB-500MB左右稳定存储,小起大落(垃圾收集器正在运行?) 堆使用迅速增长到50MB,然后停留在这个水平(20MB和100MB之间)。 heaptotal总是比堆大约多30 MB。 正如你所看到的,堆和RSS之间有很大的区别,这是我认为我们应该关注的地方。 我们的堆似乎没有任何重大的泄漏。 现在,RSS中的内容不在堆中? 我相信C扩展和Buffers,对不对? 如果是这样,我们如何debugging。 我们还应该寻找什么?