Ron*_*het 10 javascript memory-leaks node.js google-chrome-devtools winston
我正在检查由node-heapdump @0.3.14创建的堆快照,该快照在内核为 4.14.123-86.109.amzn1.x86_64 的 Amazon Linux 中的 Node.js 10.16.0 上运行。堆快照是 1GB,好消息是,字符串明显消耗了其中的大部分,使用了 750MB 的浅层和保留大小。
大多数这些字符串都必须由 winston(winston@3.2.1、winston-transport@4.3.0、winston-logsene@2.0.7)记录,日志级别 ( silly) 低于我的应用程序的最低级别 ( debug)。所以,每秒几十次,
winston.loglogLevel silly。silly< debug)。预期:字符串被 GC 处理,生活还在继续。
实际:字符串在内存中累积,未 GC,节点 OOM 为最大堆大小 (1.4GB)。
我正弦确实漏了。我所描述的不是两个普通 GC 之间的名义操作,因为查看快照中字符串的内容,我看到了很多变化,就我的应用而言,这些变化只能来自几个小时的运行。
此外,devtools有时会报告大量的这些字符串大小(23MB的字符串,实际上是1KB),和家丁树是堆积如山,与> 18000级水平的next内部对象的方法message和chunk(见下图)。
所以,我的两个问题是:
next/ message/chunk对象属于哪一种?可提供额外信息。谢谢!
这是 Winston 中与其使用流的方式相关的错误。它已在拉取请求中修复,您可以在此处阅读有关该问题和修复的更多信息: https: //github.com/winstonjs/winston/issues/1871
| 归档时间: |
|
| 查看次数: |
761 次 |
| 最近记录: |