Javascript 适用于单核Windows 7计算机的Node.js Electron应用程序的文件I/O速度较慢
我正在单核Windows7机器上运行一个电子应用程序。似乎每当我使用fs库执行几乎任何文件I/O时,电子进程的CPU峰值都会达到~100%,执行文件I/O可能需要一分钟的时间 一个特别慢的函数是fs.readFileAsync()。我正在读取的文件非常小,但似乎需要很长时间才能执行 我也在双核Windows7、Windows8.1、Windows10和Ubuntu15.10上运行过这段代码,这些操作系统都没有遇到这个问题,似乎只有单核Windows7机器。(所以我几乎可以肯定,编写的代码没有问题)Javascript 适用于单核Windows 7计算机的Node.js Electron应用程序的文件I/O速度较慢,javascript,node.js,windows,windows-7,electron,Javascript,Node.js,Windows,Windows 7,Electron,我正在单核Windows7机器上运行一个电子应用程序。似乎每当我使用fs库执行几乎任何文件I/O时,电子进程的CPU峰值都会达到~100%,执行文件I/O可能需要一分钟的时间 一个特别慢的函数是fs.readFileAsync()。我正在读取的文件非常小,但似乎需要很长时间才能执行 我也在双核Windows7、Windows8.1、Windows10和Ubuntu15.10上运行过这段代码,这些操作系统都没有遇到这个问题,似乎只有单核Windows7机器。(所以我几乎可以肯定,编写的代码没有问题
有人知道为什么会这样吗?这个问题有什么解决办法吗?核的数量影响电子应用程序的性能,这似乎很奇怪。同样,这只是Windows 7,因此单核Windows 8.1或Windows 10计算机不会表现出这种行为。Electron在主进程中处理任务的能力不强。Electron也不是多线程的 即使您运行的是单核,我还是建议使用node的“child_进程”在electron的主进程之外运行文件读/写(或任何繁重的任务)。这应该可以解决应用程序中出现的任何奇怪的打嗝或口吃,并且通常可以加快速度
还要记住,electron是基于chrome的,node是基于v8的,v8是chrome的核心。这些因素结合在一起使得电子从本质上来说是资源密集型的,性能通常是电子的缺点。其好处显然是能够快速创建跨平台应用程序。一台单核机器可能不太适合运行一个electron应用程序。我们在什么地方没有1台核心机器?10年?我认为单核Windows Server 2012 R2虚拟机上99%的cpu峰值也会出现同样的问题。我将在几天内将所有运行的4个实例更改为多核。。希望它能解决目前我们的电子应用程序速度缓慢的问题。我可能在启动时看到VS代码(基于Electron)存在类似的问题。在我的例子中,使用任务管理器将占用近100%CPU数小时的Code.exe进程的优先级降低到低于正常值,立即“修复”问题并让VS代码启动。对另一个使用CPU更少的Code.exe进程执行同样的操作没有任何效果。罪魁祸首似乎是最初的Code.exe进程。