在vue开发SPA实际项目中,不止涉及到使用cesium可视化的大屏一个界面,在切换页面或者关闭该功能、弹框后,cesium加载的模型,图层,实体等等信息会缓存到电脑的显存中,但是切回cesium界面的时候,又会重新进入页面的挂载周期,进行新的cesium实例的渲染,显存占用会越来越大,达到临界值后,页面会崩溃,显示out of memory或者是cesium页面红色弹框的shader错误
遇到问题要解决咯,首先肯定也是想到在页面destory()周期中进行卸载cesium的相关操作,但是也踩了很多坑,一直清除不干净,今天找了套相对来说最干净的方法,直接上效果对比,注意看显卡的专用GPU内存占用情况,我的电脑显卡1660TI MAXQ,还没加载模型,重复来回点击十几次也会崩溃了
首先要注意一个老生常谈的问题,在vue框架中使用cesium,一定切记,不要把ceisum的相关对象放在响应式中! 这个嵌套的层级太深了,会严重影响性能,要不就用个let接收,要不就放在window中,如果其他页面也要使用和操作该cesium对象的话
修复之前
明显会看到显存曲线的上升趋势
修复后效果
上升又回
标签:显存,泄漏,vue,弹框,内存,cesium,显卡,页面 From: https://blog.csdn.net/ruan479118658/article/details/137097375