最近一段时间,我发现电脑上的 Chrome 谷歌浏览器越用越卡了。特别是网页打开比较多,同时还有视频播放时,整个浏览器的响应速度都会变得非常缓慢,视频也会卡顿掉帧。
我用的是 iMac / 32GB 内存 / Intel 四核 i7 4Ghz CPU,硬件性能应该足以让 Chrome 流畅打开几十个网页标签页的,但现在启动久了就会明显卡顿。无论网页加载、滚动页面、切换标签页都很慢。禁用全部扩展、清理缓存、重新安装也不管用。不过幸亏最后还是找到了解决方法……
最初我一度以为是机器用久了性能下降或 macOS 系统有问题,都想要换台 M1 的新 MacBook来试试了。但是,我发现除了 Chrome / Edge 在打开多个网页标签页后变得缓慢以外,这台机器单独使用其他大型软件如 Parallels Desktop、Office、PhotoShop 时性能表现还是非常流畅、丝般顺滑的呀!这不科学……
就像之前「彻底解决智能设备 2.4G WiFi 经常掉线离线的问题 」以及「解决蓝牙键盘/鼠标频繁断开的问题」一样,我忍不住还是花时间去寻找这个谷歌 Chrome 浏览器卡顿的解决办法。毕竟浏览器是我每天工作和生活上使用最多时间最长的软件,所以这问题这必须得解决。
幸亏的是,最后还是成功找到了解决方法。而这个方法对 微软的 Edge 浏览器 卡顿应该也能同样适用,所以如果你也遇到同样的问题和烦恼,可以试试看。
先说症状:
在打开较多的网页后,比如二三十个标签页以上,即便可用内存完全足够,谷歌浏览器也会变得缓慢,无论浏览、切换、滚动页面都有明显卡顿现象。机器温度升高,电脑风扇经常响起,看高分辨率的在线视频时卡顿会非常明显和掉帧。
这时,如果再跑一些类似 PhotoShop 之类的大型软件,特别是需要操作图像时速度明显下降,整个系统响应都变差,但不至于死机。而这时 CPU 和内存用量往往并不算太高,而且这个问题除了在 iMac 以外,在我的 Intel 版的 Macbook Pro 上也能重现,卡顿后 MacBook 的耗电也会明显加快。
提前直接上解决方法 (太长不看版):
废话先不说,直接上结论 (解决方法) 吧。在开始前,我们最好先将 Chrome 升级到最新的版本,并将硬件驱动/显卡驱动升级到最新版,再进行设置。Edge 浏览器卡顿同样可以参考。
第一步:
打开 Chrome 谷歌浏览器,进入“设置 → 高级 → 系统”,将 使用硬件加速模式 的选项关闭掉,重启浏览器。如果设置后卡顿已有明显改善,那么就此搞定,不然继续第二步。
第二步:
在地址栏上输入:chrome://flags/ 回车,在顶部搜索栏中搜索“gpu”,列表中找到:“GPU rasterization”(GPU 渲染) 以及 “Accelerated 2D canvas”(2D 图形加速) 两项,将它们都设为“Disabled”禁用即可。点击右下角的“ReLaunch”重启浏览器。
你会发现,做完这两个设置后,流畅的 Chrome 又一次回来了!我这里即便同时开启超过 50 个页面,响应依然飞快,看视频也不再卡顿了。经过几周的使用观察,我认为问题已基本解决。
解决过程:
说回解决的过程吧。原本我最先怀疑的是 Chrome 内存泄漏或全部被占满,但实际上观察内存使用一段时间,即便同时打开 30~50 多个标签页,内存占用最多时也就 20 多 GB 而已 (我机器共有 32 GB),还有不少空余,瓶颈并不在此。
而查看 CPU 占用率,大概也是在 5%~10% 左右变化, 偶尔跳个 30~40%,根本也没有阻塞 CPU 的进程,卡顿似乎也不是 CPU 造成的,那到底为啥还是卡得慌啊?
于是我将所有的 Chrome 插件全部禁用,特别是“恶名昭彰”的 Flash 插件也删掉,清除所有的缓存和浏览记录,退出 Google 帐号,停止浏览器同步,把所有因素都排除。甚至最后还删掉 Chrome 重新下载安装一遍。你猜这么着?打开大量标签页后,卡顿又来了,不管用!
最后我打开 Chrome 菜单中的「窗口」→「任务管理器」,去逐个查看每个标签页的资源占用情况,终于在这里找到了一个可疑的“异样”。一个叫「GPU 进程」的不仅占用了大量的内存,还经常跑到 70% 以上的 CPU 占用率!
这 GPU 进程显然就是跟「显卡」有关了,难怪在浏览器变慢时,再打开爱奇艺、腾讯视频等视频网站播放视频时,会变得异常的卡顿了。于是,我将目光移到了“硬件加速”相关的设置。
尝试进入“Chrome → 设置 → 高级 → 系统”中,将「使用硬件加速模式(如果可用)」这个选项关掉,并重启浏览器。
哗啦!!居然整个浏览器都顺滑了!!这时打开有 50 个标签页左右,完全没有之前拖泥带水的卡顿或响应慢的感觉了,问题似乎解决了。
为什么硬件加速会变成减速?
那为啥这样?我找了一下,原来不知道哪个版本开始,Chrome 浏览器默认开启了“GPU 渲染”的特性,当开启了硬件加速选项之后,所有的 WEB 网页内容都会使用显卡 GPU 来进行解析渲染,现在 50 多个网页的解析、显示、渲染工作通通全部都交给显卡去干了。
如果你同时打开的网页数量不多,或显卡性能比较厉害,那么这个功能确实能帮你“加速”。但如果显卡性能不够,那么反而就会出现「减速」的情况了。我这由于 iMac 的屏幕分辨率高达 5K (5120×2880),本身显卡压力已不小了。尽管搭载 AMD Radeon R9 独立显卡,但还要它同时解析渲染 50 多个网页,其中还有线视频解码,加上这分辨率,负担应该是太重了吧。
这也是为什么在我使用 Chrome / Edge 浏览器在打开大量网页后,看视频会特别卡顿和掉帧,这时再使用 PhotoShop 之类的软件也会明显缓慢!因为他们都需要用到显卡计算,但这时 GPU 即使跑满 100% 也无法满足网页解析渲染+视频解码的需求,所以卡顿缓慢现象就出现了。
知道了根本的原因后,就有对应的解决方法了。我们只需把网页渲染的工作从 GPU 交回给 CPU 去处理就好了。在 Chrome 和 Edge 里面都可以直接在设置关掉“硬件加速”,这样就能减轻显卡的负担了。具体的设置 (解决方法) 也在前面提前给大家写出来了。
写在后面:
当然了,如果你电脑本来就是可用内存不足、CPU 性能也不能很好驾驭大量网页的话,按照本文的方法也是不会对浏览器速度有明显改善,只能靠更换升级硬件来解决了。
但如果你知道以前 Chrome 打开同样数量的网页是可以流畅跑的,而现在却明显卡顿变缓慢,那么就要看看是否 GPU 硬件加速惹的祸了。总之,我在修改了这个设置之后,Chrome 和 Edge 都完完全全活过来了!所以我决定记录下来,希望能对同样有浏览器卡顿烦恼的你有所帮助吧。