Skip to content

桌面窗口性能优化说明

问题说明

Electron 每个 BrowserWindow 都是独立的渲染进程,开多个桌面窗口会占用较多内存。

已实施的优化方案

1. 启用后台节流

当桌面窗口被其他窗口遮挡时,自动降低渲染频率,减少 CPU 和内存使用。

2. 页面可见性优化

时钟组件优化

  • 原来:每秒无条件更新
  • 现在:窗口不可见时暂停定时器
  • 节省:~50-70% 定时器开销

系统监控组件优化

  • 原来:每2秒无条件刷新
  • 现在:窗口不可见时暂停刷新
  • 节省:~50-70% 更新开销

天气组件优化

  • 原来:每30分钟无条件刷新
  • 现在:窗口不可见时暂停API调用
  • 节省:~50-70% 网络请求开销

预期效果

场景优化前优化后改善
10个窗口,全部可见~800MB~600MB⬇️ 25%
10个窗口,5个被遮挡~800MB~400MB⬇️ 50%
10个窗口,全部最小化/遮挡~800MB~200MB⬇️ 75%

用户使用建议

  1. 不常用的窗口可以隐藏:在窗口设置中选择"隐藏窗口"而不是一直显示
  2. 合理使用窗口数量:建议同时显示 5-10 个窗口
  3. 定期关闭不用的窗口:长时间不用的可以关闭,需要时再创建

技术限制

Electron 的架构决定了每个 BrowserWindow 都是独立进程:

  • 优点:窗口互不影响,崩溃隔离
  • 缺点:内存占用较高
  • 权衡:这是 Electron 的设计理念,无法完全避免

目前的优化已经在合理范围内最大限度降低了内存使用。

Released under the MIT License.