L7多次执行“创建-销毁“过程,会出现内存泄漏的问题
- Dominant language
- TypeScript
- Stars
- 4.1k
- Forks
- 656
- PR merge metrics
- No merged PRs in 30d
Description
### 问题描述
请参见提供的demo, 当用L7.Map 和L7.GaodeMap 初始化L7 Scene实例, 正常添加layer渲染,正常渲染后,执行scene的destroy 操作,重复多次(20次),当执行最后一次scene销毁操作后,发现内存有泄漏。
用不同底图,表现略有不同
1. 用L7.GaodeMap时,GPU内存增加的很大。
2. 用L7.Map时,发现Dom 有事件重复挂载不摘除的问题。
### 重现链接
https://codesandbox.io/p/sandbox/great-shape-tj3thr?file=%2Findex.html%3A5%2C29
### 重现步骤
1. 打开demo 链接,
2. 打开chrome任务管理器,记录开始前内存情况。
3. 点击Start ,自动执行Gaode 底图的20次创建销毁操作。
4. 结束以后,再次观察内存变化。
5. 然后修改GaodeMap 为Map,
`scene = new L7.Scene({
map: new L7.Map({
center: [120.19382669582967, 30.258134],
pitch: 0,
zoom: 3,
}),
//map: new L7.GaodeMap({
//token: "aa6f555ae5e4ced230195f3f52db5898",
//center: [120.19382669582967, 30.258134],
//pitch: 0,
//zoom: 3,
//}),
});`
6. 重复步骤2-4, 观察Map底图的20次创建销毁内存变化。
### 预期行为
调查L7.Map地图和L7.GaodeMap 重复创建销毁内存泄漏问题,并修复。
### 平台
- 操作系统: [ Windows]
- 网页浏览器: [Google Chrome]
### 屏幕截图或视频(可选)
L7.GaodeMap
执行start 前

20次创建销毁后

L7.Map
执行20次创建销毁后,dom 上遗留的事件列表

### 补充说明(可选)
当地图使用的数据越大,内存泄漏问题约明显。
Contributor guide
Assessment
This issue has not been assessed yet.