如何加快电子应用程序的启动时间?

Cod*_*iwi 5 node.js electron visual-studio-code

我正在开发一个电子应用程序,我不明白的是像 Visual Studio Code 这样的应用程序如何实现如此快的启动时间,我的意思是单击图标直到窗口打开之间的时间(直到加载 main.js) 。

我已经读过很多关于加速 Electron 的文章,但它们都只是谈论 main.js 加载后发生的事情。

我下载了电子快速启动示例,并使用电子构建器将其打包为便携式应用程序。

  • Visual Studio Code:1-2 秒后出现窗口
  • 电子快速启动:5-10秒

我只是想知道性能问题出在哪里,便携式?电子制造商?

我在电子构建器中发现了一个问题,似乎表明便携式应用程序在应用程序启动时被提取到临时文件夹中,这就是缓慢的原因

Cod*_*iwi 2

只是为了结束这个问题:

问题:

正如评论中所指出的,问题实际上是电子构建器的便携式模式。便携式应用程序首先将自身解压到计算机上的临时文件夹中,由于压缩,这可能是一项 CPU 密集型任务。

只有在应用程序文件解压后,main.js 才真正由 Node / Electron 加载。

解决方案:

使用安装程序

使用安装程序时,解包当然是在安装过程中完成的,而不是每次启动应用程序时完成。

使用启动图像(未经测试)

尽管电子构建器文档中没有提到它,但代码似乎表明您可以设置splashImagebmp 选项:

https://github.com/electron-userland/electron-builder/blob/master/packages/app-builder-lib/src/targets/nsis/nsisOptions.ts

/**
 * The image to show while the portable executable is extracting. This image must be a bitmap (`.bmp`) image.
 */
readonly splashImage?: string | null
Run Code Online (Sandbox Code Playgroud)

这至少可以清楚地表明正在发生某些事情,而不是用户因为应用程序未打开而多次单击图标