首页 / 浏览问题 / WebGIS / 问题详情
vue项目切换路由。viewer销毁不干净,造成内存泄漏。页面报错
46EXP 2021年05月31日

使用产品:SuperMap_iClient3D_10i(2020)_for_WebGL_27106_trunk

操作系统:win10 x64
数据类型: 文件型

vue项目,来回切换路由,内存会一直涨,最后报错。

为测试问题。建了如下项目两个页面来回切换,内存还是会一直涨然后报错。

只进行了加载场景及销毁场景操作。其他什么都没做。

起始内存为 450M~500M之间。涨到1.5G多点就会报错。机器内存73%左右。

cpu和GPU使用都不高。

DeveloperError: Expected width to be greater than 0, actual value was 0
Error
at new u (eval at <anonymous> (http://localhost:8080/WebGL/Build/Cesium/Cesium.js:25:1), <anonymous>:1:12954)
at Function.y.typeOf.number.greaterThan (eval at <anonymous> (http://localhost:8080/WebGL/Build/Cesium/Cesium.js:25:1), <anonymous>:1:1704586)
at new La (eval at <anonymous> (http://localhost:8080/WebGL/Build/Cesium/Cesium.js:25:1), <anonymous>:1:82701)
at Nl.update (eval at <anonymous> (http://localhost:8080/WebGL/Build/Cesium/Cesium.js:25:1), <anonymous>:1:5063463)
at cO (eval at <anonymous> (http://localhost:8080/WebGL/Build/Cesium/Cesium.js:25:1), <anonymous>:1:1470796)
at ps (eval at <anonymous> (http://localhost:8080/WebGL/Build/Cesium/Cesium.js:25:1), <anonymous>:1:1464841)
at GKa (eval at <anonymous> (http://localhost:8080/WebGL/Build/Cesium/Cesium.js:25:1), <anonymous>:1:1478979)
at by (eval at <anonymous> (http://localhost:8080/WebGL/Build/Cesium/Cesium.js:25:1), <anonymous>:1:1479372)
at Lc.render (eval at <anonymous> (http://localhost:8080/WebGL/Build/Cesium/Cesium.js:25:1), <anonymous>:1:5403842)
at Wu.render (eval at <anonymous> (http://localhost:8080/WebGL/Build/Cesium/Cesium.js:25:1), <anonymous>:1:6052331)

1个回答

您好,我这边测试没有出现上述情况,检查一下每次跳转的时候viewer是否被成功清除,方便的话可以把完整demo放百度网盘分享给。
6,087EXP 2021年05月31日

我拆出来一个小项目,复现了问题。你私信发我下邮箱吧。私发给你

报错之前,控制台有报错如下图:VM1033:1 WARNING: Too many active WebGL contexts. Oldest context will be lost.

已私信发送邮箱
已发送您邮箱。请查收。

router包含。 home    和  block

来回切换这两个页面20次左右。内存会从500M涨到1500M左右

内存是在chrome浏览器的任务管理器查看的(shift+Esc、设置--》更多工具--》任务管理器)。
您这边切换多少次之后会报这个警告,我这边来回切换了二十多次还是没有重现
没有固定次数。你那切换20次之后,占用内存有没有涨。       我电脑是台式16G内存,1660显卡

我这里是20次左右内存能从500M涨到1.5G,控制台报错:VM1033:1 WARNING: Too many active WebGL contexts. Oldest context will be lost.

然后继续切换10多次,一般到1.7G就会页面崩溃报错。

DeveloperError: Expected width to be greater than 0, actual value was 0
Error
你好。请问问题能复现了么。有处理方案吗?
...