惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

C
Check Point Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
C
CERT Recently Published Vulnerability Notes
Apple Machine Learning Research
Apple Machine Learning Research
酷 壳 – CoolShell
酷 壳 – CoolShell
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
J
Java Code Geeks
Jina AI
Jina AI
雷峰网
雷峰网
M
MIT News - Artificial intelligence
小众软件
小众软件
H
Help Net Security
The Register - Security
The Register - Security
T
Tailwind CSS Blog
D
DataBreaches.Net
大猫的无限游戏
大猫的无限游戏
有赞技术团队
有赞技术团队
G
Google Developers Blog
云风的 BLOG
云风的 BLOG
Google DeepMind News
Google DeepMind News
月光博客
月光博客
Project Zero
Project Zero
P
Proofpoint News Feed
S
Security @ Cisco Blogs
L
LINUX DO - 最新话题
I
InfoQ
Vercel News
Vercel News
V
Vulnerabilities – Threatpost
S
Schneier on Security
Spread Privacy
Spread Privacy
Hugging Face - Blog
Hugging Face - Blog
D
Docker
博客园 - 【当耐特】
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
T
The Blog of Author Tim Ferriss
博客园 - 聂微东
宝玉的分享
宝玉的分享
Recorded Future
Recorded Future
K
Kaspersky official blog
L
LINUX DO - 热门话题
Stack Overflow Blog
Stack Overflow Blog
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
腾讯CDC
A
About on SuperTechFans
D
Darknet – Hacking Tools, Hacker News & Cyber Security
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
GbyAI
GbyAI
Schneier on Security
Schneier on Security
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
B
Blog RSS Feed

友人C

handsome —— 一款typecho主题 - 友人C AI,AI,AI - 友人C 何以为我 - Being Leads Doing. 成为 Chromium Committer 我的个人经历 - 友人C 真相不会因我们的承受能力而改变(2024年终总结) - 友人C LifeTimer - 记录生活、学习、工作 - 友人C 工作三年感言 - 友人C 支持 Markdown 行级别评论 | 聊聊 AI 如何高效代码开发 为什么软件在 macOS 上启动很慢? - 友人C 内存指标与基础概念 - 友人C
macOS 中 Chromium 中打开 Save File Dialog 后主进程cpu上涨到 20%+
博主: 友人C · 2025-11-29 · via 友人C
  • 发布时间:
  • 1470 次浏览
  • 暂无评论
  • 1592字数
  • 分类: 技术分享
  1. 首页
  2. 正文  
  3. 分享到:

摘要

在macos 26上,chromium 中打开 Save File Dialog后主进程cpu上涨到20%+,在macOS 其他版本没有问题,只有chromium 存在问题,Firefox / safari 没有问题,通过 Instruments 定位到问题所在并给 Chromium 提交修复。

分析过程

对于这种必现的单场景问题比较好排查,通过instrument 抓一个trace,发现这里的罪魁祸首是firstBselineOffsetFromTop的调用。image(1)(1).png

接着找到SaveFileDialog在chromium代码的位置:components/remote_cocoa/app_shim/select_file_dialog_bridge.mm

image(2).png

这里首先需要了解两个概念:AccessoryView 和 firstBaselineAnchor 对齐规则。

  • AccessoryView: macOS在打开文件选择框时候,有一个自定义的区域,允许代码传入一个自定义的view显示在文件选择框的下方,比如这里的foramt 就是自定义的区域,也被称作AccessoryView。

image(3).png

  • firstBaselineAnchor:是指两个view的文本的首行文本的基线对齐image(4).png

查阅了一些资料发现firstBaselineAnchor 基线对齐本身的开销相对其他的top,bottom 对齐开销要高一些。
所以问题就出在了AccessoryView中的布局规则上。

接着在macos safari 中打开文件选择框,发现cpu 并不高,用instrument 分析macos safari 的accessoryView,会发现,在macOS 26上,safari 使用了centerY 属性来对齐 popupButton、label 以及外层的 stackView(见图 safari on macOS 26.png)。

safari on macOS 26.png

有意思的是,在macOS14上,safari 使用的对齐规则也是基线对齐(last base line),从一定程度说明了,safari 也发现了macOS 26上的性能问题,因此在macOS 26上修改了布局规则。

因此,我们可以考虑采用这种方式,将 firstBaselineAnchor 替换为 centerY 属性。修改后cpu 恢复正常。

给 chromium 提交 CL 并合入https://chromium-review.googlesource.com/c/chromium/src/+/6947045

赞赏作者

喜欢我的文章吗?
别忘了点赞或赞赏,让我知道创作的路上有你陪伴。

macOS 中 Chromium 中打开 Save File Dialog 后主进程cpu上涨到 20%+

 •