火狐浏览器安装油猴脚本后网页变慢,主因是脚本未优化、权限过宽或扩展冲突,导致DOM操作频繁、内存泄漏或主线程阻塞;可通过Performance面板分析重排重绘、精简@grant权限、缩小匹配范围、启用延迟注入与沙盒隔离、排查脚本冲突及调整about:config参数优化。

火狐浏览器安装油猴脚本后网页运行变慢,常见于脚本未优化、权限过宽或与现有扩展冲突,导致DOM操作频繁、内存泄漏或主线程阻塞。这不是个别现象,而是多个脚本叠加作用下的典型性能退化。
检查脚本是否触发高频DOM操作
打开开发者工具(F12)→ Performance 面板 → 点击录制 → 刷新目标网页 → 操作几秒后停止录制。观察火焰图中是否有大量绿色(Layout)或紫色(Paint)长条,这代表脚本正反复读取offsetHeight、clientWidth等触发重排的属性。
若发现某段代码在for循环内调用document.querySelector超过50次,说明选择器使用不当——应改用缓存后的节点引用,或批量操作后一次性写入DOM。
这一步操作起来很简单,直接把文件拖进去就行。
收紧脚本@grant权限并限制域名范围
方法一:精简@grant声明
进入油猴管理面板 → 编辑问题脚本 → 查看元数据区块。移除所有未实际调用的API,例如脚本没用GM_xmlhttpRequest却声明了它,或仅读取页面内容却保留unsafeWindow权限。
【保留none或仅GM_setValue/GM_getValue】能大幅降低沙盒通信开销,尤其在页面含大量iframe时效果明显。
方法二:缩小@match和@include范围
将通配符*://*/*改为具体域名,如*://github.com/*;若脚本只用于知乎评论区,就写*://www.zhihu.com/question/*。避免脚本在百度首页、银行登录页等无关页面注入执行。
注意:改完必须保存并刷新网页,否则新规则不生效。
启用延迟注入与沙盒隔离
第一步:在油猴脚本编辑界面找到“高级设置”区域
第二步:勾选“在独立沙盒中运行脚本”
第三步:将“脚本注入时机”从“document-idle”改为“document-end”或“window-load”
第四步:保存设置后强制关闭Firefox所有进程(任务管理器中结束firefox.exe),再重新启动
这能防止脚本在DOM未就绪时强行遍历节点,避免因document.body为null而反复轮询造成的CPU空转。某些旧版Zhihu-Enhanced脚本就因此卡顿300ms以上。
排查脚本间冲突
① 在地址栏输入about:addons → 切换到“扩展”面板 → 临时禁用uBlock Origin、Privacy Badger等广告拦截类扩展
② 回到油猴管理页 → 点击右上角“仪表盘” → 关闭所有用户脚本
③ 逐个启用脚本,每次启用后访问同一网页(如知乎热榜),用about:performance观察内存增长是否突增20MB以上
④ 若启用Lanzou-Enhanced后内存持续上涨且不回收,大概率是其setInterval未被clearInterval清理,需手动补上清理逻辑或换用新版
这一步不能跳过,否则无法定位真实瓶颈源。
强制启用WebRender并关闭HTTP/3
在地址栏输入about:config → 接受风险 → 搜索并修改:
gfx.webrender.all → 设为true
network.http.http3.enabled → 设为false
media.hardware-video-decoding.force-enabled → 设为true
HTTP/3在部分CDN节点存在握手延迟,关闭后可减少首屏白屏时间;WebRender开启后能将CSS动画与脚本渲染分离,避免油猴脚本阻塞GPU合成线程。


















