新闻详情

新闻详情

首页 / 资讯中心 / 详情

为什么 Search 浏览器如此快速?懒加载标签、10毫秒开新页与睡眠机制的4项性能优化全解析

发布时间:2026/9/27 4:41:19来源:尧图网络
为什么 Search 浏览器如此快速?懒加载标签、10毫秒开新页与睡眠机制的4项性能优化全解析
为什么 Search 浏览器如此快速懒加载标签、10毫秒开新页与睡眠机制的4项性能优化全解析【免费下载链接】SearchA small, fast WebKit browser for macOS, by Office Commun.项目地址: https://gitcode.com/gh_mirrors/search59/SearchSearch 是一个专为 macOS 打造的轻量级 WebKit 浏览器仅约 3 MB 却拥有秒开体验。它靠懒加载标签、共享进程池10 毫秒开新页、标签睡眠机制和网络级广告拦截这 4 项性能优化让 20 个标签页的浏览器依然丝滑流畅。本文带你逐项看懂这些设计背后的原理。快速上手如何安装 Search 浏览器Search 免费、体积小、开箱即用支持两种安装方式直接下载从官网获取 macOS 14 的安装包Homebrew 一键安装brew install --cask driceroland/tap/search得益于内置于每台 Mac 的 WebKit 引擎Safari 同款Search 不需要下载 Chromium 的第二个副本这是它快且小的地基。优化一懒加载标签页——不点不加载传统浏览器恢复上次会话时会为每个标签页立刻创建渲染进程。Search 的做法完全不同标签页恢复自上次会话时只是一个对象而不是一个 web view 和它的进程。打开 20 个标签时它们只是 20 行地址 标题的记录Session.swift真正的页面视图web view延迟到你第一次切换到该标签时才构建Tab.swift。这就是为什么带着 20 个标签启动Search 依然瞬间完成——没被点击的标签成本为零。优化二10 毫秒开新页——共享进程池的秘密点开一个新标签要多久在 Tab.swift 的注释里记录了一组实测数据方案从书签/回车到页面开始加载每个标签独立进程池41 ~ 59 毫秒窗口卡住共享一个进程池9 ~ 10 毫秒原因很直白不共享进程池时每个新标签都要从零冷启动一个 WebKit 内容进程连字体注册都在主线程做窗口会卡住共享同一个WKProcessPool后WebKit 始终有一个预热好的进程随时可用且内存占用和进程数量完全相同。这也是 NOTES.md 中新标签页约 10 毫秒打开这一改进的来源。优化三睡眠机制——闲置标签自动还内存一个打开的标签背后是一个完整的 WebKit 内容进程占用 100~300 MB 内存、跑着定时器、握着网络套接字。20 个标签就是 2~3 GB而其中 19 个你可能根本不看。Search 的睡眠机制Sleep.swift这样工作闲置 30 分钟自动睡标签归还页面进程但保留历史、滚动位置并拍一张压缩快照——唤醒时先显示快照页面在底下悄悄重建回到标签时从你离开的那一刻继续而不是白屏聪明地不睡正在看的、固定pin的、播放声音的、正在通话/下载的标签永不休眠内存紧张时收紧macOS 发出内存警告时等待时间从 30 分钟缩到 5 分钟临界时立即执行每一步休眠前还会确认页面没有打字未发送的内容宁可放弃睡眠也不丢你的输入。优化四网络级广告拦截——渲染之前就已挡住大多数广告拦截插件是 JavaScript 实现的页面先下载、先渲染脚本再删——白白浪费了流量和渲染时间。Search 的拦截器Shield.swift是 WebKit 原生的WKContentRuleList启动时编译一次在 WebKit 的网络层执行——请求发出前就被拦截运行时零开销没有东西可渲染自然没有东西拖累页面默认开启单个站点出问题可按站点关闭互不影响小结快的本质是少做事优化核心思路源码位置懒加载标签不点不建进程Tab.swift10 毫秒新页共享进程池预热Tab.swift睡眠机制闲置还内存、快照唤醒Sleep.swift网络级拦截请求前拦截零开销Shield.swiftSearch 全部源码约 12,700 行 Swift、无第三方依赖、一个关注点一个文件任何人都可以完整读懂一个浏览器到底在做什么。想动手体验的话用swift build即可本地编译运行。【免费下载链接】SearchA small, fast WebKit browser for macOS, by Office Commun.项目地址: https://gitcode.com/gh_mirrors/search59/Search创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

科学代码上的 LLM 怎么选型终裁:SciPy 基准评测与能写/不能写 2026/9/27 5:36:00

科学代码上的 LLM 怎么选型终裁:SciPy 基准评测与能写/不能写

千笔-AIWritePaper https://www.aiwritepaper.com 给课题组挑「写科学代码用哪个模型、配哪些工具」时,最常见的依据是排行榜截图和一句「我用着挺顺」。SciPy 2026 上,Institute for Disease Modeling 的 Cliff Kerr 做了一个更硬的实验(演…

阅读更多 →
一天一个开源项目(第228篇):AX —— Google 开源的「Kubernetes for Agents」,用声明式 YAML 编排十亿级 Agent 任务 2026/9/27 5:35:54

一天一个开源项目(第228篇):AX —— Google 开源的「Kubernetes for Agents」,用声明式 YAML 编排十亿级 Agent 任务

引言 “Agent 是一种全新的工作负载:它们不是无状态的微服务,也不是跑到完成就结束的批处理任务。” 这是"一天一个开源项目"系列的第 228 篇。今天的项目是 AX(仓库地址 google/ax)。 当团队开始批量运行 AI Agent 时…

阅读更多 →
Apereo CAS SSO Warning Cookie(CASPRIVACY)配置指南:实现单点登录访问前的二次确认提示 2026/9/27 5:35:54

Apereo CAS SSO Warning Cookie(CASPRIVACY)配置指南:实现单点登录访问前的二次确认提示

后端认证鉴权单点登录 【免费下载链接】cas Apereo CAS - Identity & Single Sign On for all earthlings and beyond. 项目地址: https://gitcode.com/gh_mirrors/ca/cas 点击查看 免费下载 导读 本文聚焦 Apereo CAS 的 SSO Warning Session Cookie&#xf…

阅读更多 →
MWORKS下光伏逆变器并网建模:PLL与dq电流环控制实战 2026/9/27 5:35:54

MWORKS下光伏逆变器并网建模:PLL与dq电流环控制实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
打工人深度实测Seed-2.1-pro-0915:一张草图跑完全流程?多模态Agent终于靠谱了 2026/9/27 5:35:47

打工人深度实测Seed-2.1-pro-0915:一张草图跑完全流程?多模态Agent终于靠谱了

作为常年泡在方案、预算、PPT里的职场运营人,我一直是AI办公工具的重度使用者,却也总被各类Agent的“半成品体验”劝退:看得懂图却理不清需求,会搜资料却总掺幻觉,能写初稿却改不动第二版,跑长流程半路必“…

阅读更多 →
AI 时代图像取证闸门:失败含义与当天最小实验 2026/9/27 5:35:47

AI 时代图像取证闸门:失败含义与当天最小实验

论文插图、实验照片、新闻配图被质疑「是不是 AI 生成的」,最常见的回应是两种极端:要么放大看看说「没问题」,要么丢进某个检测网站,拿一个百分比当结论。欧洲法证研究所(European Forensic Institute)202…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉