Hacker News 中文摘要

RSS订阅

开发一款macOS应用以监测Mac何时进行热节流 -- Building a macOS app to know when my Mac is thermal throttling

文章摘要

作者发现M2 MacBook Air在使用高分辨率外接显示器时会出现因过热降频导致性能下降的问题,于是开发了一款名为MacThrottle的应用来监测Mac电脑的降频情况。文章还提到即使是配备M4 Max芯片的MacBook Pro也会出现过热降频现象。

文章总结

标题:开发一款监测Mac温度降频的应用程序

主要内容概述:

作者Stanislas分享了开发MacThrottle应用的过程,这款菜单栏应用能实时监测Apple Silicon芯片的散热状态和温度变化。

开发背景: - 作者在使用M2 MacBook Air连接4K 120Hz显示器时,发现无风扇设计导致设备容易过热降频 - 14英寸M4 Max版MacBook Pro也存在散热问题 - 现有工具(如iStat Menus)能显示降频迹象,但缺乏精准监测

技术探索: 1. 发现两种监测方式: - 苹果官方推荐的ProcessInfo.thermalState API(精度不足) - 需要root权限的powermetrics工具(提供更精确的"nominal/moderate/heavy"分级)

  1. 突破性发现:
    • 通过逆向工程找到thermald服务通过Darwin通知系统暴露的底层接口
    • 开发出无需root权限的监测方案

应用功能: - 菜单栏动态显示温度计图标(颜色随状态变化) - 集成温度曲线图(支持10分钟历史记录) - 风扇转速监测(支持机型显示) - 状态变化通知提醒 - 开机自启动功能

技术细节: - 使用SwiftUI开发,采用MenuBarExtra场景 - 通过SMC接口获取精确温度数据 - 添加.drawingGroup实现120Hz显示器流畅渲染 - 利用SMAppService实现开机启动

安装方式: - 提供GitHub预编译版本(需手动授权) - 支持Xcode源码编译

项目地址: https://github.com/angristan/MacThrottle

(注:原文中关于具体代码实现、历史版本迭代细节等内容已精简,保留了核心开发思路和主要功能特点)

评论总结

这篇评论主要围绕MacOS温度监控工具展开讨论,主要观点如下:

  1. 工具实用性质疑
  • 开发者Neywiny质疑工具的实际用途:"知道配置导致降频后能做什么?Mac没有风扇配置可调"(原文:"what are you able to do about it? There's no fan profile to tweak")
  • twilo认为现有方案已足够:"可以直接在菜单栏监控CPU使用率和总功耗"(原文:"ping your CPU usage to the menu bar and monitor that")
  1. 技术问题与改进建议
  • nazgu1指出技术缺陷:"存在热压力通知的bug问题"(原文:"problem/bug with thermal pressure notifications")
  • edwardtay提出多项改进建议:"可考虑添加历史记录图表、M系列芯片的特殊处理、降频警报等功能"(原文:"historical tracking/graphing... alerts/notifications when throttling occurs")
  1. 用户使用体验
  • theblackhand抱怨设备问题:"2017款MacBook开Chrome就像喷气引擎"(原文:"opening chrome sets off fans like a jet engine")
  • mschuster91提醒养护注意:"养宠物需定期清理风扇毛发"(原文:"you must regularly... open them up and thoroughly clean them")
  1. 分发与商业化建议
  • e40建议:"通过Homebrew免费获取公证和代码签名"(原文:"get notarization and code signing for free if he puts it into Homebrew")
  • luxuryballs期待:"希望苹果能将其整合进系统"(原文:"hope Apple will 'Sherlock' and bake into the OS")
  1. 替代方案推荐
  • 多位用户推荐stats等现有工具(评论2/4/10)
  • rkagerer提出硬件改进构想:"在机身上添加LED指示灯"(原文:"indicate via an unobtrusive LED on the chassis")