antvis/G2

The issue has been closed
CI 内存溢出 #4504
pearmini posted onGitHub
CI 内存溢出
目前 G2 的远程 CI 会出现内存溢出的问题,导致 __tests__/integration/snapshot.spec.ts
不能正常运行测试。
问题
问题应该是在在切换不同测试图表的时候,canvas.destroy()
并没有销毁上一个图表的图形元素,导致内存一直在增加。定位到问题应该是 G 依赖 antv/util
里面的 memoize
,而这个函数用的 Map
去缓存结果,导致这个 Map
一直保存着图形元素的强引用,从而它们不会被垃圾回收。
解决办法
antv/util
里面的 memoize
使用 WeakMap
。
临时方案
每个人提交的 PR 一定要在本地运行 npm run ci
保证本地没有问题,然后再合并到 v5
分支。