Hacker News 中文摘要

RSS订阅

基于Electron的应用程序导致macOS 26 Tahoe系统整体卡顿 -- Electron-based apps cause system-wide lag on macOS 26 Tahoe

文章摘要

Electron应用在macOS 26系统上引发严重的全局性能延迟问题,相关讨论已在GitHub的Electron项目issue中提出。

文章总结

基于Electron的应用程序在macOS 26上引发严重系统卡顿问题

核心问题
在macOS 26 Tahoe RC系统中,用户报告称基于Electron框架的应用程序(如Discord、VS Code等)会导致严重的系统级卡顿。具体表现为:
- 即使CPU和GPU占用率较低,窗口移动、滚动等操作仍出现明显卡顿(如120Hz刷新率降至60Hz)。
- 卡顿在应用未最小化时持续存在,最小化后消失。
- 同时运行多个Electron应用时问题加剧。

技术分析
开发者@avarayr通过深入调查发现:
1. 根本原因:Electron覆盖了macOS私有API _cornerMask,用于自定义窗口阴影效果。
2. 机制冲突:macOS 26的WindowServer通过该方法实现阴影缓存,而Electron的覆盖导致缓存失效,迫使系统反复重绘阴影,引发GPU负载飙升。
3. 验证方案:移除该私有API覆盖后,GPU负载恢复正常(PR #48376)。

争议点
- 责任归属:部分用户认为苹果应保障私有API变更的兼容性;另一方指出Electron滥用私有API本就存在风险。
- 影响范围:该问题不仅限于Electron应用,部分原生苹果应用(如iMusic、Notes)在切换桌面空间时也出现GPU占用异常。

后续进展
- Electron团队已提交修复并计划向后兼容旧版本。
- 用户呼吁主流Electron应用(如Discord)尽快更新依赖版本。

用户建议
- 短期方案:最小化Electron应用以缓解卡顿。
- 长期方案:等待应用更新或macOS后续补丁。

注:此问题凸显了跨平台框架与操作系统深度集成的潜在风险,尤其在涉及私有API时。

评论总结

总结评论内容如下:

  1. 关于Electron应用性能问题的讨论

    • 负面观点:多位用户指出Electron应用普遍存在卡顿问题
      • "Don't Electron-based apps cause lag on basically any system?"(huijzer)
      • "The most inefficient solution...shown to be causing widespread sluggishness"(rvz)
    • 正面体验:部分用户表示某些Electron应用运行流畅
      • "Discord and VSCode work smoothly for me on an M4 MBP"(schmidtleonard)
      • "FWIW haven't experienced this at all on an M4 Max"(OGEnthusiast)
  2. 关于macOS系统问题的批评

    • 用户批评macOS 26版本存在性能问题和UI不一致
      • "Performance issues, ui inconsistencies and garish design everywhere"(kace91)
      • "Spotlight file search is completely broken...Apple finally caught up to Microsoft"(schmidtleonard)
  3. 技术解决方案讨论

    • 提供了针对Chrome/Chromium资源泄漏的临时解决方案
      • "applying this command...will workaround the underlying macOS resource leak"(altairprime)
      • 但警告该方案可能有未来风险:"has a slight but non-zero risk of someday breaking OS-linked autofill"
  4. 软件工程实践批评

    • 批评违反封装原则的编程实践
      • "an affront to the idea of encapsulation"(kccqzy)
      • "a piece of code has different behavior depending on the identity of a function"(kccqzy)
  5. 用户态度

    • 部分用户对Electron持完全否定态度
      • "I'm a simple man, I see Electron I don't install"(nntwozz)