【问题标题】:Electron app from dvd poor loading performance来自 DVD 的电子应用程序加载性能不佳
【发布时间】:2016-07-14 07:44:07
【问题描述】:

我们刚刚用 node 和 react 构建了一个电子应用程序。该应用程序在每个平台上都运行顺利,我们对结果非常满意。 现在我们收到了在 dvd 上分发该应用程序版本的请求(这意味着我们需要直接从光盘运行该应用程序,而无需将其安装在本地驱动器上),因此我们只是将其刻录并尝试启动它。 该应用程序运行良好,但问题在于加载时间,因为该应用程序运行几乎需要 2 分钟,而没有任何反馈给最终用户。 这是由于从光驱加载大量文件的开销非常慢。 所以我们需要一些想法来加快速度,或者至少在加载期间向用户展示一些东西。 这可能是一个带有启动屏幕的启动器应用程序,但它必须在 mac、win 和 linux 上运行。 我们在 QT 考虑过,但我们想要一些不那么复杂的东西..

欢迎提出任何意见

【问题讨论】:

  • 您的 DVD 可能在读取磁盘时出现问题。 dvd 的速度足以在几秒钟内加载应用程序。测试磁盘读取性能
  • 我在 18 种不同的硬件组合上对其进行了测试。传输大文件时光驱速度很快,但如果您需要读取多个小文件,则速度非常慢。即使是电子示例应用程序也需要超过一分钟才能从 cd/dvd 加载
  • 如果您有大量非常小的文件,则可能是访问时间过慢造成了损害。如果可能,您应该将所有罚款合并到一个二进制文件中,加载到内存中并从那里读取单个文件块。
  • Electron 支持将应用程序打包到 asar 档案中。我对此了解不多,但它可能有助于从缓慢的存储中加载时间。 github.com/atom/electron/blob/master/docs/tutorial/…
  • 您可以使用众多解压缩系统之一打包您的应用程序,然后从解压缩到临时位置的存档中运行它。

标签: javascript qt electron dvd


【解决方案1】:

尝试将您的应用程序打包为 asar 存档。访问档案比访问多个小文件要快。

您可能希望为此使用electron-builder

【讨论】:

    【解决方案2】:

    我有一个理论,这可能与您无法写入典型 DVD 的事实有关,因此可能不是加载时间,可能是它正在尝试写入,但它不能.

    我对我的理论做了一些调查,下载了一些电子应用程序,然后开始调查它们的包内容(在 MacOS 上),看看它们是否在安装过程中被操作系统修改。

    我遇到的大多数文件的创建/修改日期与应用打包部署时的日期相同。然而,在这两种情况下,我注意到在 Contents/Frameworks 中有三个目录在我安装应用程序时被修改(Electron Framework.framework、Mantle.framework、ReactiveCocoa.framework 和 Squirrel Framework)。

    似乎如果它试图对 DVD 上的这些文件进行这些更新,就会出现错误。

    这是我的理论——它可能不正确,但这里没有听说过,所以不妨看看。

    【讨论】:

      【解决方案3】:

      这很可能不是您运行它的应用程序或设备的问题,它更有可能是慢速 DVD 播放器或慢速 DVD 本身,尝试通过其他方法分发也可能有用,例如例如制作安装程序并让人们从网站下载,或销售带有可执行文件的 USB。另一个问题,您是否将您的电子应用程序从源代码转换为可执行文件?与从命令运行电子代码相比,启动可执行文件要快得多且容易得多。

      【讨论】:

        猜你喜欢
        • 2020-07-17
        • 2020-02-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-10-19
        相关资源
        最近更新 更多