antvis/G2

CI 内存溢出 #4504

pearmini posted onGitHub

CI 内存溢出

目前 G2 的远程 CI 会出现内存溢出的问题,导致 __tests__/integration/snapshot.spec.ts 不能正常运行测试。

image

问题

问题应该是在在切换不同测试图表的时候,canvas.destroy() 并没有销毁上一个图表的图形元素,导致内存一直在增加。定位到问题应该是 G 依赖 antv/util 里面的 memoize,而这个函数用的 Map 去缓存结果,导致这个 Map 一直保存着图形元素的强引用,从而它们不会被垃圾回收。

解决办法

antv/util 里面的 memoize 使用 WeakMap

临时方案

每个人提交的 PR 一定要在本地运行 npm run ci 保证本地没有问题,然后再合并到 v5 分支。


posted by pearmini about 2 years ago

Fund this Issue

$0.00
Funded

Pull requests