SpinCost
让 Electron 应用别再为静止页面上的动画烧掉电池
- 痛点
- VSCode、Chromium、Firefox、Thunderbird 这类应用会在静态内容上不停转圈,持续占用 CPU/GPU,让笔记本变烫变卡。开发者其实只是想加个「正在加载」的状态,却默认选了最耗电的平滑 spinner,用户对此怨声载道。
- 方案
- 一个极简的开源组件库与检测小工具:提供低帧率、可暂停、符合 prefers-reduced-motion 的加载组件,覆盖主流前端框架;再提供一个运行在开发环境中的覆盖层,自动检测持续运行的动画并在控制台或面板中标出是哪段代码在烧 CPU。
- 用户
- Electron/Web 前端开发者、对性能敏感的开源项目维护者、在意电池续航的用户。
- MVP
- 面向 React/Vue/Svelte 的低帧率 spinner 组件;prefers-reduced-motion 自动降级;一个浏览器 DevTools 面板,高亮持续动画及其首次出现位置;可复制替换的示例代码。
- 变现
- 组件库开源免费,DevTools 性能面板作为付费的专业版(买断或订阅);或提供企业内部的性能审计服务与培训。
- 为何现在
- Electron 应用越来越多,用户对发热和续航的抱怨集中爆发,但主流组件库默认动画仍然昂贵;这是一个技术含量不高、却能立刻见效的开发工具机会。
来源讨论 · 1
- Hacker NewsShow HN: Avoid smooth spinners, use low-FPS spinners1↑ 0