fds

fds

V2EX member #12025, joined on 2011-09-22 01:32:02 +08:00
fds's recent replies
资本主义从原来的“倒牛奶”已经发展为“删代码”了!
@monosave #8 好的好的。得让 AI 再整理下。
后续改进:把列表扫描阶段剩余的两个子进程也去掉了,200 个应用的 ListApplications 从 14.7s 降到约 94ms 。

1. mdls 改为直接读 bundle 。按当前界面语言依次读 Contents/Resources/<lproj>/InfoPlist.strings (中文:zh-Hans / zh_CN / zh ,英文:en / English / Base ),取 CFBundleDisplayName 或 CFBundleName ;没有本地化文件时回退 Info.plist 的同名字段,再回退目录名。howett.net/plist 能解析 .strings 的 XML 、二进制和 OpenStep 文本三种格式,实测微信 / 熊掌记 / 飞书等中文名正确。副作用:原 mdls 返回的是 Finder 文件名(如 Alfred 5 ),现在优先 bundle 显示名( Alfred )。
2. sips 图标转换延迟到首次渲染。AppInfo 去掉 IconPNG ,新增 core.ApplicationIconPNG(ctx, appPath)。UI 层在 applicationImage 首次遇到某应用时标记 pending 并起 goroutine 转换,4 并发、单个 10s 超时,完成后通过 win.Update 写入图标缓存,期间显示头像占位。列表出现不再等图标。

累计效果( 200 个应用):

- 原始:>30s ,超时弹窗
- 保留部分结果 + 体积延迟 + ps 一次性:14.7s
- 再加 Info.plist 读名 + 图标延迟:约 94ms
👍很棒。我加了个剩余磁盘空间显示。另外遇到个报错,分析如下:

问题:启动约 30 秒后弹窗「操作未完成 / context deadline exceeded 」。

原因:loadApplications 在启动时后台扫描 /Applications ,整体限时 30s 。core.ListApplications 对每个 .app 串行做 4 件事,各自开子进程或遍历目录:mdls 取显示名、WalkDir 算包体积、pgrep -f 判断是否运行、sips 转图标。我机器上 200 个应用合计超过 30s ,超时后整份结果被丢弃,错误原样弹到 UI 。

最重要的改进(按价值排序):

1. 超时不要丢弃已扫描结果。ListApplications 在 ctx.Err() 时返回已收集的部分列表,loadApplications 对 context.DeadlineExceeded 只记 log 不弹窗。这是直接消除弹窗的改动。
2. 包体积延迟计算。pathSize 全目录遍历是最大开销(约 11s ),列表阶段不需要。改为选中应用时在后台与关联文件扫描一起算。
3. 运行状态一次性获取。启动时跑一次 ps -axo comm=,内存里按 appPath/Contents/MacOS/ 前缀匹配,替代每个应用一次 pgrep (约 6s )。
4. 后续可选:mdls 改读 Info.plist 的 CFBundleDisplayName ,sips 图标转换延迟到可见时。这两项仍占约 14s 。

效果:1–3 实施后,200 个应用扫描 30s+ 降到 14.7s ,不再弹窗。
3 days ago
Replied to a topic by 1300296933 › 职场话题 › 怎么感觉自己变不成一个大人
乔布斯还想永远年轻呢!
现在有 AI 协助干啥都方便了许多。
跟前面一样,我也是自己编译了 Ice 改改报错。
外接买了个可以用水冲洗的,还挺方便。洗完晾晾就很干净。唯一问题是可能得晾 24h 才能全干,所以还得备着个旧的。
3 days ago
Replied to a topic by LUCIFERorCHRIS › 生活 › 十年挚友,突然离世
这也太年轻了。人体是如此的脆弱,且用且珍惜……
5 days ago
Replied to a topic by 250419 › 职场话题 › 到底谁今天上班能有好脸色?
上班不是给自己挣钱吗?有啥不开心的?还能顺便培养自己的能力。
About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   962 Online   Highest 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 16ms · UTC 22:01 · PVG 06:01 · LAX 15:01 · JFK 18:01
♥ Do have faith in what you're doing.