发布时间:2023-05-20 文章分类:WEB开发, 电脑百科 投稿人:李佳 字号: 默认 | | 超大 打印

最近笔者开始接触高德地图,发现了一种情况:不论是项目上还是高德官方,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)