如何在运行时在 NodeJS 中触发分析?

How to trigger profiling in NodeJS at runtime?

我们有一个非常有状态的基于 NodeJS 的 Web 服务器 (Meteor),它偶尔会在生产中随机变慢。这个问题在我们的任何测试中都无法重现,我们也不知道是什么触发了它。

为了诊断这个问题,我们使用了 v8-profiler 包。这让我们可以触发一个 10 秒 CPU 配置文件并下载它进行离线分析。

尽管 3 年内没有收到任何提交,但该包过去工作得相当好。它过去给我们带来了编译麻烦,现在看起来 stopped compiling 完全破坏了我们的构建。构建发生在一个 Docker 容器内,所有版本都固定,包括 NodeJS 和 v8-profiler 本身,所以我们不太可能在我们这边解决这个问题。

我认为必须有一些替代的、更好维护的方法。但是它在哪里?

(请注意,使用附加标志(如 --profile)重新启动服务器不是一种选择,因为它会破坏问题的所有证据。)

我发现已经有 v8-profiler-next 它是 v8-profiler 的后继者。

希望这对你有用。