【问题标题】:How do I speed up the start time of my electron app?如何加快电子应用程序的启动时间?
【发布时间】:2020-05-10 21:22:59
【问题描述】:

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

我已经阅读了很多关于加速电子的文章,但他们都只是谈论加载 main.js 之后发生的事情。

我下载了 electron-quick-start 示例并使用 electron-builder 将其打包为便携式应用程序。

  • Visual Studio 代码:1-2 秒直到出现一个窗口
  • 电子快速启动:5-10 秒

我只是想知道性能问题出在哪里,便携?电子生成器?

我在 electron-builder 中发现了一个 issue,这似乎表明,便携式应用程序在应用程序启动时被提取到临时文件夹中,这很慢

【问题讨论】:

  • 是的,electron-builder 便携 exe 提取解压后的版本。在我的情况下,在文件夹 C:\Users\xxx\AppData\Local\Temp\1ZvscrlLfEK1BonnPLcq0FFUDpk 中。 Visual Studio Code 不使用可移植的 exe 来启动应用程序。您是否找到了加快便携式 exe 启动时间的方法?
  • @Ado 很遗憾不是,我想这只是电子便携应用程序的本质。这个问题只在速度慢的机器上很困扰,我只是建议大家改用安装程序

标签: node.js visual-studio-code electron


【解决方案1】:

只是为了结束这个问题:

问题:

正如 cmets 中所指出的,问题确实出在 electron-builder 的可移植模式上。便携式应用程序首先将自身解压到您计算机上的一个临时文件夹中,由于压缩,这可能是一项 CPU 密集型任务。

只有在app文件解压后,main.js才真正被node/electron加载。

解决方案:

使用安装程序

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

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

虽然 electron-builder 文档中没有提到它,但代码似乎表明您可以设置 splashImage bmp 选项:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-07-23
    • 2021-09-22
    • 2019-01-29
    • 1970-01-01
    • 2011-01-10
    • 2018-10-30
    相关资源
    最近更新 更多