Chrome为何越来越卡?从源码裁剪到日常优化,彻底给浏览器瘦身
2026/9/16 5:33:22 网站建设 项目流程

说实话,每次看到任务管理器里 Chrome 那一排进程,我都想吐槽一句:你到底是浏览器,还是吃内存的怪物?后来我在刷 GitHub 的时候,看到一个挺有意思的项目思路——把 Chrome 里那些“人类看热闹”用的代码砍掉,浏览器直接轻十倍、快十倍。今天这篇就想顺着这个思路,深挖一下 Chrome 到底藏了哪些“看热闹”的代码,以及我们真的动手删掉、或者用现成精简版时,该怎么操作、要注意什么。

这里说的“看热闹”,不是骂人,而是指 Chrome 里大量跟“专心把网页打开给你看”这件事无关的代码。比如自动更新、遥测上报、内置统计、各种后台服务,甚至一部分埋点和广告相关逻辑。这些代码对普通用户来说,就像站在路边看热闹的人群——真正办事儿的没几个,还把人行道堵得死死的。把这一部分清掉,浏览器的资源占用和启动速度往往会有非常明显的改善。

1. Chrome 为什么越用越重:拆开看“九成代码”到底去哪了

很多人一遇到 Chrome 卡顿,第一反应就是标签页开太多了。这个判断不算错,但只看到了表面。真正的问题在于,Chrome 本身就不是一个“单纯”的浏览器。它的代码仓库包含了几千万行代码,里面有渲染引擎、V8 引擎、网络栈、UI 框架、同步服务、内置翻译、语音助手、地理位置服务、云打印……你日常浏览网页用到的功能,可能只是一小部分。

1.1 多进程架构是双刃剑

Chrome 设计成多进程架构,初衷是稳定性——一个标签页崩溃了,不会把整个浏览器带走。这个思路放到今天依然先进,但代价是每个进程都要复制一份基础组件,内存开销成倍增长。你要是打开 20 个标签页,背后可能就是 20 个渲染进程,再加上 GPU 进程、网络服务进程、扩展进程,任务管理器里密密麻麻。

而 fork 项目里所谓“删掉九成代码”,往往从进程模型入手,把用不到的服务进程合并、裁剪,减少进程数量。比如某些精简版 Chromium 会把部分功能改回单进程或半单进程模式,牺牲一点隔离性换取内存大幅下降。对日常浏览来说,这个取舍完全值得。

1.2 真正吃资源的未必是你打开的网页

我在实际对比中测过,同时也开相同的 10 个网页,原版 Chrome 的内存占用经常比专门精简过的 Chromium 高出 30% 到 50%。差距在哪?不是网页本身,而是浏览器自己后台跑的活儿。

Chrome 的后台服务里,最典型的就是遥测系统。它会收集崩溃报告、使用统计、性能数据,然后定期上传。这部分代码在用户看不到的地方默默工作,CPU 和网络都会消耗一点。单个看不大,但架不住长期积累。另外还有自动更新服务,它会周期性检查新版本,在后台下载更新包,磁盘写入和网络占用也躲不掉。再有就是各种“预加载”逻辑,它会根据你的搜索历史预测你可能要访问的页面,提前在后台渲染,听起来很智能,但对硬件不太好的机器来说就是灾难。

1.3 “看热闹”代码的具体表现

我把平时能观察到的“看热闹”行为列了几个典型:

  • 地址栏输入时,浏览器会向默认搜索引擎发送实时建议请求,每敲一个字母都可能发一次网络请求。
  • 新建标签页里,Google 或者第三方起始页会加载一堆本地新闻、天气、广告模块。
  • 关闭页面时,Chrome 还会保留一段时间的“缓存状态”,为了你点后退按钮能秒回。
  • 密码管理、自动填充、同步功能,任何一步都在后台跑逻辑。

这些东西本身不是完全没用,但对很多用户来说就是“看热闹”——不参与核心流程,还占用资源。所谓精简,就是在保留“打开网页、看网页、关网页”这条主线的同时,把周边多余的服务降到最低。

2. 删代码的思路和实践地图:从浏览器骨架与分支说起

既然要删代码,那总得有删的“底座”。Chrome 本身是闭源的,但你肯定听过 Chromium——它是 Chrome 的开源上游项目。所有基于 Chrome 换壳的国产浏览器、Edge、Opera,底层几乎都是 Chromium。所以真正能动手删的,不是 Chrome,而是 Chromium。

2.1 为什么从 Chromium 而不是 Chrome 出发

Chrome 和 Chromium 的区别,一句话说:Chrome 在 Chromium 外面包了一层谷歌的专有服务。包括自动更新、Flash 支持(现在已移除)、版权音视频解码器、额外崩溃报告等。Chromium 本身是干净的开源版本,没有那些闭源组件,但它仍然保留了大量你可能用不上的功能模块。

所以,所有“瘦身”项目的起点都是 Chromium。这就好比你想做轻食沙拉,得先买到没裹面粉的鸡胸肉,而不是去炸鸡店里拆壳。

2.2 ungoogled-chromium:先把“联网汇报”关掉

GitHub 上最出名的精简项目之一叫 ungoogled-chromium。它的核心思路就是移除所有和 Google 相关的联网行为,包括遥测、自动更新、某些内置服务的 URL。它不会删渲染引擎,也不会砍页面兼容性,只是为了让你摆脱浏览器自身的“电话回家”行为。

用了一段时间后,最直观的感受就是后台流量变少了,而且没有那些隐形的统计请求,隐私方面也更安心。这个项目适合那些不想自己折腾编译、但又想摆脱 Chrome 后台小动作的人。它的发布页在 GitHub 上提供了多平台编译好的安装包,下载解压就能用。

2.3 Thorium:性能补丁的堆积者

另一个热度很高的分支叫 Thorium。它是在 Chromium 基础上做性能增强的 fork,思路不是删功能,而是给浏览器打各种 A/B 类优化补丁,比如改用更激进的编译优化参数、启用 AVX2 指令集、调整 JIT 策略。实测下来,在某些设备上跑 JavaScript 基准测试,分数能比原版 Chromium 高不少。

不过 Thorium 这种方案有个前提——你的 CPU 得支持新增的指令集。如果 CPU 太老,反而可能跑不起来。这就引出一个重要的经验:用精简版浏览器之前,先搞清楚自己的硬件水平,别盲目追新。

2.4 自己 fork 要动哪些模块

如果你想自己从源码删代码,那么重点考虑的模块大致包括:

  • components/:包含大量组件,比如翻译、提示、用户反馈等,可以按需裁剪。
  • chrome/browser/:浏览器主体逻辑,很多后台服务和 UI 入口在这里。
  • chrome/browser/notifications:通知服务,删掉可以少一个系统级权限。
  • third_party/:第三方依赖库,这个不建议瞎动,很容易编译失败。

比较理智的做法是先从“禁用”入手。Chromium 的构建系统支持用 gn 参数关闭功能,而不是真的删源码文件。比如去掉内置翻译、去掉云打印、去掉手势识别,这些都能减少编译体积和运行时内存。真要改源码,也得先在 git 里拉个分支,方便随时回退。

3. 动手实操:源码级瘦身与编译,附关键参数

如果你感兴趣的是“自己编译一个专属精简浏览器”,这段可以直接抄作业。编译 Chromium 对新手来说门槛不低,但跟着流程走,成功率能提升很多。

3.1 环境准备与依赖安装

编译 Chromium 最稳妥的操作系统是 Linux,或者 Windows 上用 WSL2 配 Ubuntu。我这边是在 Ubuntu 22.04 上做的,依赖安装命令大致如下:

sudo apt update sudo apt install git python3 ninja-build clang pkg-config \ libnss3-dev libatk-bridge2.0-dev libgtk-3-dev libxss-dev \ libasound2-dev libpulse-dev libdrm-dev libgbm-dev

这些依赖主要是图形界面、音频、网络相关的开发库。缺一个,后面的编译流程就可能直接报错。

然后下载 Chromium 源码。源码体积很大,完整仓库大概十几 GB,建议先用git clone的时候加--depth=1减少历史记录下载:

git clone --depth=1 https://github.com/chromium/chromium.git cd chromium ./tools/ia32_build/install-build-deps.sh

如果是国内网络,GitHub 直连速度不稳定,可以配一个国内的镜像源,或者用代理工具对github.com做 hosts 加速。这一步没做好,下载源码很容易中断,非常考验耐心。

3.2 合理配置编译 flag

源码下载完后,重点在配置编译参数。Chromium 使用gn工具来生成编译规则,命令一般长这样:

gn gen out/Default --args="is_debug=false is_official_build=true \ symbol_level=0 \ enable_nacl=false \ enable_widevine=false \ disable_fieldtrial_config=true \ google_api_key=\"\" \ google_default_client_id=\"\" \ google_default_client_secret=\"\" \ enable_remoting=false \ enable_print_preview=false \ enable_mdns=false"

这些参数里,我解释几个关键的:

  • enable_nacl=false:禁用旧版 Native Client 插件机制,对普通网页没影响。
  • enable_widevine=false:禁用 DRM 模块,代价是在线视频网站可能看不了高清。
  • disable_fieldtrial_config=true:关闭 Google 的远程配置实验,避免浏览器偷偷调整功能。
  • google_api_key设为空:移除 Google 服务相关的身份认证。
  • enable_print_preview=false:砍掉打印预览,需要打印功能的人慎选。

编译命令本身是:

autoninja -C out/Default chrome

如果机器性能一般,编译时间会非常长,一两个小时只是起步。建议编译时不要把 CPU 核心数全占满,留一两个给系统,免得电脑卡到没法用。

3.3 常见编译问题处理

我自己第一次编译时遇到过两个坑。

第一个是磁盘空间不够。Chromium 编译产物非常大,完整构建可以吃掉 50 GB 以上的空间。所以开始之前,先检查一下你的分区剩余空间,别编到一半才发现写满。

第二个是 clang 版本不兼容。Chromium 对编译器版本很敏感,系统默认的 clang 版本太旧或太新都可能报错。最稳妥的办法是用 Chromium 官方提供的third_party/llvm-build脚本来下载配套的 clang,而不是自己装。

如果你不想折腾这些,直接用 GitHub 上现成的精简版二进包更省事。很多项目在 Releases 页面提供了编译好的安装包,下载之后解压就能用。我的建议是,第一次先别硬啃源码编译,先用现成版感受一下有没有效果,再决定要不要深入折腾。

4. 不编译也能瘦身:日常使用的软优化实操

不是每个人都有精力去编译源码,但大家都可以通过调优,让 Chrome 用起来更清爽、没那么吃资源。这里分享几套我长期在用的方法。

4.1 从设置里关掉非必要功能

Chrome 的设置项很多,但一般人打开就改个搜索引擎、换个主题,很多后台选项根本没注意到。我拿到一台新电脑,配 Chrome 时会按下面这些顺序处理:

  • 设置 => 同步服务和 Google 服务,关掉“其他 Google 服务”,把“允许 Chrome 帮我在后台完成任务”关掉。
  • 设置 => 隐私设置和安全,停用“预加载网页”或把它改成“仅使用标准预加载”,避免后台疯狂加载页面。
  • 设置 => 性能,打开“内存节省程序”,它会自动释放闲置标签页的内存,长期挂着的后台页就不会一直占资源。
  • 设置 => 搜索,关掉地址栏的“联想服务”或者把它改成“不自动搜索”,减少每次敲键盘产生的网络请求。

这几步关掉之后,浏览器启动速度和持续占用都会改善。特别是“预加载网页”那一项,是我见过最容易被忽略的“隐藏内存消耗器”。它会在你敲 URL 时提前解析 DNS、预连服务器,甚至把页面渲染出来,你以为自己只打开了一个页面,实际上浏览器已经偷偷帮你访问了好几个。

4.2 扩展插件的取舍与替代

扩展是 Chrome 的一把双刃剑。装多了,内存和进程数量会直线上升,而且有些插件常驻后台,你根本不知道它在做什么。精简的核心原则是:能不用插件就不用插件,能用浏览器自带功能就别外装。

比如:

  • 翻译功能,Chrome 自带翻译引擎,不需要另装云翻译插件。
  • 截图功能,用系统自带截图工具,比装一个“网页长截图”插件来得更干净。
  • 广告拦截,可以装一两个轻量的,但要注意别堆太多同类插件。同类拦截器互相叠加,反而拖慢页面加载。
  • 鼠标手势、快捷翻译、密码填充这类功能,优先看浏览器原生支持,实在没有再说。

清理插件的时候,去chrome://extensions/页面看一眼,很多插件都有“网页访问权限”和“后台运行权限”,你不需要的可以直接移除。我自己的经验是,日常使用的插件数量控制在 5 个以内,浏览器会稳定很多。

4.3 启动参数和页面缓存调优

Chrome 除了界面设置,还能靠启动参数做精细化控制,Windows 下可以在快捷方式的目标后面加参数。比如:

  • --disable-features=Translate,MediaRouter:关掉翻译和媒体投屏。
  • --disable-background-networking:禁止后台网络请求。
  • --disable-component-update:停用组件自动更新。
  • --no-first-run:跳过首次运行检查。
  • --disable-sync:关闭同步功能。

这些参数有些也可以直接用命令行动态生效。但要注意,有的参数在部分版本里已经被移除或改了名字,建议先用chrome://version看看当前版本,再查对应版本的参数支持情况。

页面缓存方面的经验是,别盲目清空Cache。很多人一卡就清缓存,清完反而觉得网页加载变慢了,因为所有资源都要重新下载。合理的做法是,定期清理小文件缓存,保留长期站点资源目录。实在想省空间,可以打开chrome://settings/clearBrowserData选择“缓存的图片和文件”,但只清 1 小时或 24 小时以内的数据就好。

5. 常见问题与排查技巧实录

精简浏览器或者优化 Chrome 之后,你会遇到一些奇奇怪怪的问题。这里把我踩过的一些坑集中列一下。

5.1 精简掉功能后网页异常怎么办

最常见的问题是某些网页打不开、白屏、或者视频播放失败。原因往往是精简时关了关键组件,比如Media FoundationWidevine。如果是自己编译的 Chromium,可以在chrome://components里看看 Widevine 是不是缺失。普通用户更常见的现象是:Chrome 打开网址后闪一下就变空白了,这个不一定是精简版的问题,很多时候是扩展冲突或缓存损坏。

遇到这种情况,我会先按 F12 打开开发者工具,切到 Console 面板看有没有明显的红色报错。如果有ERR_BLOCKED_BY_CLIENT,那就是广告拦截插件拦掉了关键脚本;如果是ERR_CONNECTION_RESET,那多半是网络层的问题。不要急着重装浏览器,先定位到具体报错再下手。

5.2 想用 GitHub 仓库和发布包:访问慢或不稳定怎么破

很多精简版浏览器都托管在 GitHub 上,源码和编译好的安装包大多在 Releases 页面。国内访问 GitHub 时快时慢,直接git clone经常卡住。我这里用过比较稳的方案有两种。

第一种是配置系统 Hosts,把github.comraw.githubusercontent.comcodeload.github.com这几个域名指到响应较快的 IP。IP 地址可以通过本地 DNS 查询工具或者在线 DNS 解析服务查,选一个延迟低的填进去。Hosts 方式的好处是轻量、不依赖额外软件,缺点是 IP 可能过段时间失效,需要重新查。

第二种是用镜像站或者代理下载加速。国内很多大学和云厂商都提供 GitHub 仓库镜像,把原本https://github.com/...的链接替换成镜像前缀,下载速度会快很多。镜像站一般只适合下载打包好的源码包或者 Releases 附件,不适合做日常 git 操作。还有一个思路是,如果只是要 Releases 里的安装包,可以用一些在线下载加速平台,输入 GitHub 链接就能生成一个临时直链。

有一点需要提醒,下载安装包之后,务必核对文件的哈希值,确保跟发布页面提供的值一致。因为这类第三方编译版不像正规软件有统一分发渠道,少了校验环节,很容易下载到被篡改的包。

5.3 刷出新版后数据迁移和配置保留

我用 Chrome 系精简版时最大的问号是:换了浏览器,书签、密码、浏览记录怎么迁过去?

最简单的方法是让旧版 Chrome 导出书签,然后在新浏览器导入 HTML 文件。密码我不建议导出导入,因为很多精简版不会同步你的 Google 账户,导入的密码也只是一串本地明文,安全性没有保障。更稳的做法是用密码管理器插件,或者直接手动重新登录一遍关键网站。

缓存和历史记录属于“丢了也不心痛”的数据,一般不迁。如果你确实需要保留登录状态,可以复制旧浏览器的User Data目录下的Default目录,但版本不同目录结构可能有差异,操作前先备份整体文件夹。我用得多的方法还是“关键书签手动导出,其他拉倒”,这样最不容易出问题。

6. 我重新审视“轻十倍、快十倍”这个目标

标题里夸大了“轻十倍、快十倍”,这个说法更多是标题党级别的宣传。但方向上并不假。原版 Chrome 之所以越用越重,主要不是网页变复杂了,而是浏览器自身塞了太多和“渲染网页”无关的逻辑。当你把这些模块一个个关掉、删掉,内存占用和启动速度确实会有肉眼可见的改善。

根据我自己的操作习惯,现在主力机器上用的也是定制过的 Chromium 系浏览器。日常工作开十几个标签页,内存占用比此前用的原版 Chrome 低了不少,风扇不再疯狂作响,续航肉眼可见地变好。对我这种每天长时间泡在网页里的人来说,这个改变很值。

如果你不想编译也不想换浏览器,那至少把设置里的预加载、后台同步、自动更新这些项关掉,清理一批用不上的扩展,再把启动参数调一调,也能感受到一定程度的“变轻”。很多人抱怨 Chrome 卡,其实不是 Chrome 天生卡,而是它默认负载了太多你以为用得上、实际上根本不需要的功能。

我最后再分享一个小技巧:定期重启浏览器,比清理缓存、卸载重装都有效。Chrome 的长期运行会产生大量碎片进程,内存和句柄数不断累积。手动重启一次,比装任何“内存清理大师”都管用。绝大多数人以为自己浏览器坏了的时候,其实只需要一个重启。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询