为什么Electron应用程序在不活动后运行缓慢?

为什么Electron应用程序在不活动后运行缓慢?,electron,Electron,我有一个Electron应用程序(在Mac上运行),它在后台等待按键,然后显示一个窗口 如果我把它放在背景下过夜,然后使用它,它在最初的10秒钟左右会非常慢。似乎更新DOM和进程间通信都很慢。延迟不是来自我的代码,它似乎主要影响渲染器进程。在初始慢度之后,它开始正常工作 电子应用程序会这样做有什么原因吗?它是不是不知怎么从内存中卸载了 奇怪的是,窗口的初始显示会立即出现;就在我开始进行进程间通信之后,它的速度变慢了。对此有一些可能的答案,但在花了无数个小时弄清楚之后,我想我应该分享一个对我有用的

我有一个Electron应用程序(在Mac上运行),它在后台等待按键,然后显示一个窗口

如果我把它放在背景下过夜,然后使用它,它在最初的10秒钟左右会非常慢。似乎更新DOM和进程间通信都很慢。延迟不是来自我的代码,它似乎主要影响渲染器进程。在初始慢度之后,它开始正常工作

电子应用程序会这样做有什么原因吗?它是不是不知怎么从内存中卸载了


奇怪的是,窗口的初始显示会立即出现;就在我开始进行进程间通信之后,它的速度变慢了。

对此有一些可能的答案,但在花了无数个小时弄清楚之后,我想我应该分享一个对我有用的答案

当我把应用程序放在前台时,我正在显示一个动画SVG,当我把它放在后台时,我将它隐藏起来。显然,这是在隐藏动画帧时将其排队,然后在显示动画帧时将其取消排队,从而导致延迟


它是通过将Electron从8.5.5升级到9.0.0来修复的,我相信这会将Chromium从80.0.3987.165升级到83.0.4103.64。不确定确切的修复方法是什么,但它起了作用。

对此有一些可能的答案,但在花了无数个小时弄清楚之后,我想我应该分享一个对我有效的方法

当我把应用程序放在前台时,我正在显示一个动画SVG,当我把它放在后台时,我将它隐藏起来。显然,这是在隐藏动画帧时将其排队,然后在显示动画帧时将其取消排队,从而导致延迟

它是通过将Electron从8.5.5升级到9.0.0来修复的,我相信这会将Chromium从80.0.3987.165升级到83.0.4103.64。不确定确切的修复方法是什么,但它起了作用