Javascript 来自dvd的Electron应用程序加载性能差

Javascript 来自dvd的Electron应用程序加载性能差,javascript,qt,electron,dvd,Javascript,Qt,Electron,Dvd,我们刚刚用node和react构建了一个电子应用程序。应用程序在每个平台上都运行顺利,我们对结果非常满意。 现在,我们收到了在dvd上分发该应用程序版本的请求(这意味着我们需要直接从光盘运行应用程序,而无需将其安装在本地驱动器上),因此我们只需刻录它并尝试启动它。 该应用程序运行正常,但问题在于加载时间,因为运行该应用程序几乎需要2分钟,而没有向最终用户提供任何反馈。 这是因为从光盘驱动器加载大量文件的开销非常慢。 因此,我们需要一些想法来加快速度,或者至少在加载期间向用户展示一些东西。 这可能

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


欢迎任何想法

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

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

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

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

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


这是我的理论-它可能不正确,但没有在这里提到过,所以也许可以研究一下。

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


为此,您可能需要使用
electron builder

您的dvd可能在读取磁盘时遇到问题。dvd的速度足以在几秒钟内加载应用程序。测试磁盘读取性能我在18种不同的硬件组合上进行了测试。光盘驱动器在传输大文件时速度很快,但在需要读取多个小文件时速度非常慢。即使electron sample应用程序从cd/DVD加载也需要一分钟以上。如果你有大量非常小的文件,那么可能是访问时间太慢造成了损害。如果可能的话,你应该把所有的罚款合并成一个二进制文件,加载到内存中并从中读取单个文件块。Electron支持将应用程序打包到asar存档中。我对它了解不多,但它可能有助于从慢速存储加载时间。您可以使用众多解压系统之一包装应用程序,并从解压缩到临时位置的存档运行它。