压力测试我的Foxx应用程序最终使用SIGSEGV崩溃了ArangoDB。看看核心文件,它似乎与V8耗尽内存有关。我想在堆上进行内存分析,以帮助追踪潜在的泄漏。由于V8引擎是arangod不可或缺的一部分,我如何访问和使用V8分析器?帮助这一切的节点模块都有C ++模块,所以它们不能在Foxx下运行。
答案 0 :(得分:1)
不幸的是,V8引擎及其垃圾收集在内存管理方面存在一些问题。
在某些情况下,它会在紧密的循环中运行以从系统中挤出更多的内存,有时它会立即终止进程而不是让主机进程有机会应对这种情况。
这是所有基于V8的解决方案必须解决的问题 - Node.JS。 V8团队正在研究这个问题,并且每个版本都会取得进展。 但到目前为止还没有达到目的。
关于调试接口,它很可能也提供内存分析,我们很清楚它当前缺少and tracking progress on this via the github issue #1538。随着资源可用于此主题,我们将开始研究它。
你现在可以借助Linux内核以某种方式使用flamgegraphs,但是编写使这个更有用的JIT编译函数的名称似乎是有问题的。