Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.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
File io 如何有效地监视大量文件更改?_File Io_Operating System_Fswatch - Fatal编程技术网

File io 如何有效地监视大量文件更改?

File io 如何有效地监视大量文件更改?,file-io,operating-system,fswatch,File Io,Operating System,Fswatch,我希望编写一个能够有效监视多个文件的更改并在写入文件时触发事件的守护进程/服务。这里的问题是,根据我的想法,我可能会在我相对较弱的计算机上跟踪数百个文件,我担心性能问题 我曾考虑过使用fswatch,但考虑到针对不同操作系统的各种类型的监视器,特别是针对可能数百个文件的监视器,我不确定其性能 我正在寻找一个跨平台的解决方案。最好是C++或Nodejs。任何帮助都将不胜感激 除了fs.watch,还有相当多的npm软件包,性能取决于许多因素,正如您所说,您的系统在性能方面有点慢。您可以使用或。它们

我希望编写一个能够有效监视多个文件的更改并在写入文件时触发事件的守护进程/服务。这里的问题是,根据我的想法,我可能会在我相对较弱的计算机上跟踪数百个文件,我担心性能问题

我曾考虑过使用
fswatch
,但考虑到针对不同操作系统的各种类型的监视器,特别是针对可能数百个文件的监视器,我不确定其性能


我正在寻找一个跨平台的解决方案。最好是C++或Nodejs。任何帮助都将不胜感激

除了fs.watch,还有相当多的npm软件包,性能取决于许多因素,正如您所说,您的系统在性能方面有点慢。您可以使用或。它们是很好的选择

const chokidar = require('chokidar');

// One-liner for current directory
chokidar.watch('.').on('all', (event, path) => {
  console.log(event, path);
});
此外,您还可以将目录划分为较小的块,并将它们分配给子进程,这有助于在特定工作线程中发生任何更改时更新父进程。然而,这只是一个建议,因为如果任何工作线程停止工作,您可能需要跟踪需要重新分配的文件,并且您必须自己实现它(有点复杂)

我建议您使用npm包或
fs.watch
本身来实现

您可以从文档中查看其他事件以了解更多信息