最近笔者开始接触高德地图,发现了一种情况:不论是项目上还是高德官方,2.0版本均存在自定义地图在操作时非常卡顿的现象,而1.4.15版本却仍旧流畅。
项目上存在的“多个接口多个文件调用时阻塞地图活动”情况暂且不论,本文只讨论如何通过改变chrome浏览器及系统显卡的设置发挥其应有的性能,让地图操作回归原本流畅的体验。
一、现象分析
目前笔者经历过的卡顿现象均是在操作地图时(移动,缩放等),CPU使用率异常飙升导致的(常年100%),通过系统级任务管理器和浏览器级任务管理器均可观察到。
此时通过一段js代码可以看到浏览器使用的是自带的模拟显卡:
(function () { var canvas = document.createElement('canvas'), gl =
canvas.getContext('experimental-webgl'), debugInfo =
gl.getExtension('WEBGL_debug_renderer_info');
console.log(gl.getParameter(debugInfo.UNMASKED_RENDERER_WEBGL)); })();
在控制台打印出来的结果是:
ANGLE (Google, Vulkan 1.3.0 (SwiftShader Device (Subzero) (0x0000C0DE)), SwiftShader driver)
二、解决方案
1、首先在“chrome设置-系统”中开启“硬件加速”,这个功能不打开的话高德很多效果是看不到的,而且体验感觉巨卡。
2、有N卡的同学需要把NVIDIA控制面板中的相关设置给开起来,全局设置或单独程序设置均可,不设置的话浏览器可能会默认使用浏览器自己的模拟显卡,就是上面那个。
3、在chrome://flags/#ignore-gpu-blocklist 中启用"Override software rendering list"特性。
4、重启电脑(笔者的电脑是重启后才生效的)
三、结束
再次打开高德地图时,应该会看到一个比较明显的流畅度提升,且CPU使用率趋于正常。
查看浏览器使用显卡,发现已经使用了独显:
ANGLE (NVIDIA, NVIDIA GeForce MX230 Direct3D11 vs_5_0 ps_5_0, D3D11)