Safari内存泄漏主因是单标签页独占Web Content进程且后台JS持续运行,需定位关闭高内存页、禁用扩展、清空缓存、启用JS暂停及清理大体积网站数据。

这是因为Safari为每个标签页单独分配一个“Safari Web Content”进程,含视频、Canvas动画或React/Vue框架的页面单页就能长期锁定300MB以上内存,且后台标签页的JavaScript仍持续运行,拒绝释放DOM对象,导致内存无法回收。
定位并关闭高内存标签页
打开“应用程序→实用工具→活动监视器”→切换到“内存”标签页→点击“内存”列两次按降序排列→重点找占用超【300 MB】的“Safari Web Content”进程→记下右侧显示的网页标题(如“Bilibili - 番剧播放页”)→切回Safari,用Command + W直接关闭该标签页。
别刷新页面——刷新不释放JS长期持有的DOM对象,内存依然被锁死。
如果标题看不清,就按Command + `循环切换所有Safari窗口,逐个排查最小化窗口里的高耗页。
禁用扩展排查隐性泄漏源
方法一:Safari → 设置 → 扩展 → 取消勾选所有已启用的扩展 → 重启Safari。
方法二:重点关注uBlock Origin、1Password、Grammarly这三类扩展——它们即使闲置也会监听页面、注入脚本、轮询API,造成内存缓慢爬升,最终触发CPU软解和风扇全速运转。
禁用后必须重启Safari,否则扩展进程不会真正退出。
清空缓存并重置WebProcess状态
①按Command + Q彻底退出Safari(仅关闭窗口无效,必须杀掉进程);
②重新打开Safari → 顶部菜单栏点击「Safari」→「偏好设置」→「高级」→ 勾选「在菜单栏中显示开发菜单」;
③点击菜单栏「开发」→「清空缓存」;
④关闭偏好设置窗口 → 再次按Command + Q退出Safari → 重新启动。
【此操作不会删除书签、密码、阅读列表,但会重置所有自定义搜索引擎、主页、工具栏按钮布局】。
暂停不活跃标签页的JavaScript执行
点击菜单栏【Safari】→【偏好设置】→【标签页】→ 勾选「暂停不活跃标签页中的JavaScript执行」。
这步开启后,后台标签页的JS定时器自动冻结、fetch请求挂起、事件监听器暂停触发,前台网页立刻获得完整CPU调度权。
实测可使滚动帧率从32fps回升至58fps。
手动清理高体积网站数据
点击菜单栏「Safari」→「偏好设置」→「隐私」→「管理网站数据」→等待列表完全加载→点击「大小」列标题降序排列→【重点清理占用空间超过80MB的条目,尤其是youtube.com、bilibili.com、taboola.com这类站点】→选中后点击「移除」,可按住Command多选再批量移除。


















