Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 适用于单核Windows 7计算机的Node.js Electron应用程序的文件I/O速度较慢_Javascript_Node.js_Windows_Windows 7_Electron - Fatal编程技术网

Javascript 适用于单核Windows 7计算机的Node.js Electron应用程序的文件I/O速度较慢

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机器。(所以我几乎可以肯定,编写的代码没有问题

我正在单核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进程。