如何分析 ArangoDB Foxx 应用程序中的内存使用情况
How to profile memory usage in an ArangoDB Foxx App
压力测试我的 Foxx 应用程序最终导致 ArangoDB 崩溃并发出 SIGSEGV。查看核心文件似乎与 V8 运行ning out of memory 有关。我想对堆进行内存分析以帮助追踪潜在的泄漏。由于 V8 引擎是 arangod 的组成部分,我如何访问和使用 V8 分析器?有助于解决此问题的节点模块都有 C++ 模块,因此它们不会 运行 就在 Foxx 下。
不幸的是,V8 引擎及其垃圾收集在内存管理方面存在一些问题。
在某些情况下,它会在紧密的循环中运行以从系统中挤出更多内存,有时它会立即终止进程而不是让其宿主进程有机会处理这种情况。
这是所有基于 V8 的解决方案都必须解决的问题 - Node.JS。 V8 团队正在为此努力,并且他们在每个版本中都取得了进展。
但是现在还没有走到尽头。
关于最有可能还提供内存分析的调试接口,我们很清楚它目前缺失 and tracking progress on this via the github issue #1538。随着该主题的资源可用,我们将开始研究它。
您现在可能可以在 linux 内核的帮助下以某种方式使用 flamgegraphs,但是编写实现此功能所需的 JIT 编译函数的名称似乎有问题更有用。
压力测试我的 Foxx 应用程序最终导致 ArangoDB 崩溃并发出 SIGSEGV。查看核心文件似乎与 V8 运行ning out of memory 有关。我想对堆进行内存分析以帮助追踪潜在的泄漏。由于 V8 引擎是 arangod 的组成部分,我如何访问和使用 V8 分析器?有助于解决此问题的节点模块都有 C++ 模块,因此它们不会 运行 就在 Foxx 下。
不幸的是,V8 引擎及其垃圾收集在内存管理方面存在一些问题。
在某些情况下,它会在紧密的循环中运行以从系统中挤出更多内存,有时它会立即终止进程而不是让其宿主进程有机会处理这种情况。
这是所有基于 V8 的解决方案都必须解决的问题 - Node.JS。 V8 团队正在为此努力,并且他们在每个版本中都取得了进展。 但是现在还没有走到尽头。
关于最有可能还提供内存分析的调试接口,我们很清楚它目前缺失 and tracking progress on this via the github issue #1538。随着该主题的资源可用,我们将开始研究它。
您现在可能可以在 linux 内核的帮助下以某种方式使用 flamgegraphs,但是编写实现此功能所需的 JIT 编译函数的名称似乎有问题更有用。