TGViewer
开发者工具箱|编程·开发工具·资源 开发者工具箱|编程·开发工具·资源 @devtoolboxhub · 570 subscribers
Post #1326 9
usernoted 啃掉一个CPU核心?一条命令揪出元凶

一台 Mac 发烫,usernoted 守护进程持续 99% CPU。删除 Timelines app 后问题解决。以下是完整调试过程。

开机 CPU 持续 99%,按内存排查无果,按 CPU 排序发现 usernoted 占用一个整核。killall 后两秒重启。使用 sample 获取堆栈,发现卡在 UNCalendarNotificationTrigger 的 week-of-year 日期计算无限循环。

怀疑是日历数据问题:移除 Google 日历、关闭日历通知、删除可疑日历、导出 .ics 检查 BYWEEKNO,全无效。原因为 zsh 内置 log 命令遮蔽了 /usr/bin/log,且命令后加了 2>/dev/null 吞掉报错,导致日志一直被误认为空。改用完整路径后立刻发现反复出现的 bundle ID com.glimsoft.Timelines,该 app 曾调度两条“重新互动”通知,但通知权限已被拒绝,形成死循环:计算触发时间 → 送达被拒 → 重新调度 → 再计算。

删除 /Applications/Timelines.app 后,CPU 从 8.0s/8s 降至 0.38s/8s。问题根源:Apple 的 Calendar.nextDate(matching:) 在无法满足组件时无限循环,已被向 Feedback Assistant 报告。


关键教训:不要过早忽略错误输出,警惕 shell 内置命令遮蔽,测量用累计时间而非快照。遇到 usernoted 飙 CPU,用 /usr/bin/log show 直接查看重复 bundle ID。

#开发者 #工具 #macOS #usernoted #调试 #Timelines #CPU
@DevToolboxHub
More from @devtoolboxhub
  1. Sep 30, 2026AMSI 绕过技术 2026 开发者指南 AMSI(Antivirus Malware Scan Interface)是 Windows 的恶意脚本扫描接口,覆盖 PowerShe…
  2. Sep 30, 2026AI Agent 为什么记不住事 和 AI Agent 协作时最容易注意到的一点是:它们很擅长回答问题,却不擅长记住昨天发生过什么。你可以和它长聊一轮,做出一堆决定、说明偏好、一起…
  3. Sep 30, 2026wpipe:面向 Python 开发者的轻量编排库 wpipe 是一个纯 Python 可嵌入的编排库,目标是让数据管道的开发回到「编辑—运行—调试」的快速循环,而不必为验证业务逻…
  4. Sep 29, 20262,916 个 AI 网站 8 月流量:转录与图生 3D 起飞 Anjin Radar 追踪了 2,916 个 AI 网站的月度访问量,数据截至 2026 年 9 月 28 日。访…
  5. Sep 29, 2026Python 虚拟环境其实是个软链接 在 Linux 和 macOS 上执行 python3 -m venv .venv,并不会复制一份 Python。venv 里的 python…
  6. Sep 29, 2026Will It Focus:相机自动对焦兼容性查询 Agent 这是一个面向摄影器材的自动对焦兼容性查询工具,但它真正的看点在于工程实现:如何让模型引用厂商原文时,保证引用的确实是…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →