Node.JS 垃圾收集事件?或 --trace-gc 到 stderr?

发布于 2024-11-05 11:56:25 字数 317 浏览 2 评论 0原文

作为一般实践,当我编写脚本时,日志消息总是发送到 stderr,而数据(状态消息、算法结果等)发送到 stdout。

我想将其发送到 stderr。可以吗?

如果有的话,我可以使用自己的处理程序来处理某种 process.on('gc') 事件。有吗?

我现在正在编写一些代码,其中 stdout 是为数据保留的,我别无选择,只能关闭 --trace-gc。我使用 memoryUsage() 作为第二好的事情,但它并没有告诉你 GC 之前和之后的用法,它只是告诉你每当 memoryUsage() 时的用法碰巧被叫了。

As a general practice, when I write scripts, log messages always go to stderr and data (status messages, results from an algorithm, whatever) goes to stdout.

I would like to get this sent to stderr. Can that be done?

I would be fine to use my own handler to some sort of process.on('gc') event if there is one. Is there one?

I am writing some code now where stdout is reserved for data and I have no choice but to turn off --trace-gc. I am using memoryUsage() as a second best thing, but it does not tell the usage right before and right after GC, it just tells you the usage whenever memoryUsage() happened to be called.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

泪之魂 2024-11-12 11:56:25

快速检查 v8 源代码(垃圾收集器所在的位置 - [node src dir]/deps/v8/src/heap.cc 和 platform-posix.cc)显示垃圾收集消息使用标准打印到控制台linux vprint() (来自 printf(3)),所以我很确定如果不修补源代码就无法捕获它们。

A quick check of the v8 source code (where the garbage collector lives - [node src dir]/deps/v8/src/heap.cc and platform-posix.cc) shows that garbage collection messages are printed to the console using the standard linux vprint() (from printf(3)) so I'm pretty sure you cannot trap them without patching the source code.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文