Closed fengmk2 closed 10 months ago
normalizeCache 的 key 每次 tar unpack 之后都会递增。
ezm headdump 也抓到了
从内网之前的分析来看,堆内内存占用并不大,主要是堆外占用很大,而堆外大部分都是碎片内存。
也就是说,在 unpack 之后,在 normalizeCache
对象储存了大量的 key-value 对,但是由于存在少量 key/value 仍然被后续的程序使用(猜测)导致整个 normalizeCache 对象都没有被释放,这里说的没释放是没有释放给系统,被 ptmalloc 的 main arena 给保留了,原因是 top chunk 附近存在未回收内存。
经历了多次 unpack 后,堆外内存就暴涨了。泄露的不是 heap,是 mm 区。
从内网之前的分析来看,堆内内存占用并不大,主要是堆外占用很大,而堆外大部分都是碎片内存。
也就是说,在 unpack 之后,在
normalizeCache
对象储存了大量的 key-value 对,但是由于存在少量 key/value 仍然被后续的程序使用(猜测)导致整个 normalizeCache 对象都没有被释放,这里说的没释放是没有释放给系统,被 ptmalloc 的 main arena 给保留了,原因是 top chunk 附近存在未回收内存。经历了多次 unpack 后,堆外内存就暴涨了。因此泄露的不是 heap。
这个不是的,这个是真的 heap 泄漏,js 代码实现问题。
这个不是的,这个是真的 heap 泄漏,js 代码实现问题。
那就是存在不止一个问题咯
node_modules/_tar@6.2.0@tar/lib/unpack.js node_modules/_tar@6.2.0@tar/lib/normalize-unicode.js
长期方案