0

对我的 Foxx 应用程序进行压力测试最终导致 ArangoDB 与 SIGSEGV 一起崩溃。查看核心文件似乎与 V8 内存不足有关。我想在堆上进行内存分析以帮助追踪潜在的泄漏。由于 V8 引擎是 arangod 不可或缺的一部分,我如何访问和使用 V8 分析器?帮助解决这个问题的节点模块都有 C++ 模块,因此它们不会在 Foxx 下运行。

4

1 回答 1

1

不幸的是,V8 引擎及其垃圾收集在内存管理方面存在一些问题。

在某些情况下,它会在紧密的循环中运行以从系统中挤出更多内存,有时它会立即终止进程,而不是让其宿主进程有机会应对这种情况。

这是所有基于 V8 的解决方案都必须解决的问题 - Node.JS 也是如此。V8 团队正在为此努力,并且每个版本都取得了进展。但现在还没有走到尽头。

关于很可能还提供内存分析的调试接口,我们很清楚它目前缺失并通过 github 问题 #1538 跟踪其进度。随着该主题的资源可用,我们将开始研究它。

您现在可能可以借助 linux 内核以某种方式使用flamgegraphs,但是编写JIT 编译函数的名称以使其更有用似乎是有问题的。

于 2016-08-02T08:00:02.793 回答