Electron应用程序初次启动缓慢

3
我有一个电子应用程序,第一次打包后启动时间非常慢 - 大约需要20-30秒。在随后的运行中,启动时间只需要1、2秒。有没有想法是为什么会出现这种情况?或者,是否有任何可用的工具可以跟踪此问题的来源。
macOS
1个回答

1
Electron使用Chromium(被Google Chrome使用),这可能是为什么当您的应用程序第一次启动时需要花费时间来进行缓存和其他操作的原因,这也取决于计算机的性能。

以下是一些我从下面的文章中列出的原因。

模块

例如,您想要做某些事情,但懒得自己写代码,于是搜索一个可以为您完成工作的模块,我对此没有任何问题,但有时模块会有自己的依赖关系,而这些依赖关系可能有它们自己的依赖关系,这些依赖关系可能会影响您的启动时间,因为"require"或"import"将加载所有内容,这可能会导致您的代码比如果您自己编写或下载了一个优化的小型库来执行相同的操作,则会变得非常庞大。

使用同步代码

我个人不喜欢promise树(处理异步代码的.then列表),但如果我使用await或其他方法,它可能会阻塞我的主进程,这可能会导致我的应用程序冻结,因此最好使用promise。

使用旧API

在现代版本的Chromium中,可能有更好的API来处理一些可能会因使用旧API而变慢的内容。
总的来说,如果你不打算制作一个网络版,你不需要担心你的代码是否能在其他浏览器上运行(直到最新版本的 Electron 引入最新的 API 并将其提供给最终用户时)。你可以阅读以下文章,这些文章可能有助于提高您的应用程序性能:
  1. 如何加速您的 Electron 应用程序 - DEV.TO
  2. 性能 - ELECTRONJS.ORG
  3. 为什么使用 electron js 框架创建的桌面应用程序很慢?- QUORA

你从哪里得到await阻塞主进程的想法? - Christian
@Christian 举个例子,如果你使用了electron builder,并且在启动主窗口之前使用它来检查更新,使用一个等待的方法,那么在主窗口弹出/打开之前,这个等待会减慢这个过程。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接