在性能问题中观察文件更改

Watching file change in Performance Issues

本文关键字:文件 观察 性能 问题      更新时间:2023-09-26

我正在尝试创建一个实时日志监控工具在node.js与Chokidar &socket . io。然而,我不太清楚如何有效地重新加载内容时,文件发生了变化。Chokidar监视文件更改并触发一个事件,在该事件中,我必须获得更改的内容的唯一选项是再次读取整个文件并再次使用该内容填充视图。这确实减慢了整个进程,也增加了CPU利用率。

var watcher = chokidar.watch('file, dir, or glob', {
  ignored: /['/'']'./, persistent: true
});
watcher.on('change', function(path, stats) {
  if (stats) console.log('File', path, 'changed size to', stats.size);
});

在我的情况下,日志大小太大,并且有大量的更新。我该如何着手解决这个问题呢?是否有任何方法可以获取更改的内容,而不是重新加载整个文件以获取更改的内容?

chokidar似乎没有提供任何功能来告诉您文件中更改了什么(它给您文件名和文件统计)。

因此,如果您想知道更改了什么,那么维护文件的某种以前的影子副本的负担就在您身上,以便您可以分析新文件与以前的副本,以查看更改了什么。如果您为整个文件系统(需要双存储)执行此操作,显然这是一个存储密集型任务,但如果您仅为一小部分文件执行此操作,则肯定可以管理。