最近笔者开始接触高德地图,发现了一种情况:不论是项目上还是高德官方,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、在chrome://flags/#ignore-gpu-blocklist 中启用"Override software rendering list"特性。
3、右键桌面打开显示设置
4、在显示设置中找到“图形设置”
5、点击“浏览”,输入chrome.exe的所在位置,如:C:\Users\16483\AppData\Local\Google\Chrome\Application,选择chrome.exe
6、使用“高性能”方案
7、重启电脑
三、结束
再次打开高德地图时,应该会看到一个比较明显的流畅度提升,且CPU使用率趋于正常。
查看浏览器使用显卡,发现已经使用了独显:
ANGLE (NVIDIA, NVIDIA GeForce MX230 Direct3D11 vs_5_0 ps_5_0, D3D11)