BFi*_*Fil 22
以下工具对于发现内存泄漏非常有用:
还有一个教程可以帮助您找到内存泄漏:
https://github.com/felixge/node-memory-leak-tutorial
小智 10
在追踪内存泄漏时,我尝试了上面的节点检查器.
截至2012年4月,它没有更新到使用当代节点版本v0.6.12.因此我发现:https://github.com/c4milo/node-webkit-agent.
它能够显示节点检查器不支持的较新V8引擎的堆快照.在短时间内,我能够检测泄漏模块(在可能的情况下loggly),我希望你有类似的成功!
我还可以推荐以下来源:
以下是NodeUp的剧集,其中讨论了分析和内存泄漏检测工具:
本文 - 跟踪Node.js中的内存泄漏 - 一个Node.JS假日季节,它基本上聚合了所有广为人知的模块和技术来追踪内存泄漏
方法 1 -
\nNode 允许我们手动触发垃圾收集,这是我们在尝试确认内存泄漏时应该做的第一件事。这可以通过使用 --expose-gc 标志运行 Node(即 node --expose-gc index.js)来完成。一旦节点在该模式下运行,您就可以通过从程序中调用 global.gc() 以编程方式随时触发垃圾收集。
您还可以通过调用 process.memoryUsage().heapUsed 检查进程使用的内存量。
\n\n通过手动触发垃圾收集并检查所使用的堆,您可以确定您是否确实观察到程序中的内存泄漏。当您进行此测试时,内存增长会变得更加明显。
\n\n方法2-
\n\n3 堆转储方法
\n\nNode\xe2\x80\x99s --inspect 标志出现在节点版本 6 中。此功能允许您从 Chrome\xe2\x80\x99s DevTools 中调试和检查节点进程。
\n\n只需传递 --inspect 标志即可启动应用程序:
\n\n$ node --inspect index.js
按照 URL 访问检查器并导航至内存选项卡。
\n\nDevTools 内存选项卡
\n\n\n\n使用 autocannon -c 1 -d 60 http://localhost:PORT
\n[ https://www.npmjs.com/package/autocannon ]
\n在大约 10 秒后拍摄堆快照,并在 30 秒后再次拍摄应用程序。
堆快照比较
\n比较视图向我们展示了快照之间发生的情况。您可以看到大量对象已被创建或未被 GC 收集。
请阅读这些精彩的文章以了解更多信息。
\n他们为查找和修复泄漏提供了很大帮助:-
https://www.alexkras.com/simple-guide-to-finding-a-javascript-memory-leak-in-node-js/
\n\nhttps://www.nearform.com/blog/self-detect-memory-leak-node/
\n\nhttps://addyosmani.com/blog/taming-the-unicorn-easing-javascript-memory-profiling-in-devtools/
\n 归档时间: |
|
查看次数: |
18606 次 |
最近记录: |