如果两个文件是Uniq,则在Node.js中进行有效比较

如果两个文件是Uniq,则在Node.js中进行有效比较,node.js,npm,diff,Node.js,Npm,Diff,我正在寻找一种比较Node.js中两个文件是否为uniq的有效方法 我只需要知道文件是否相等。简单的true/false作为输出就足够了 在文件上构建校验和有点慢。同时,Linuxdiff命令对于比较大文件也相当快。所以我只是好奇Node.js中是否有高效的Linuxdiff命令的等价物或模块 正如评论中所建议的,我们可以尝试使用该模块 我只是尝试将相同的1.3gb文件与streamequal和diff进行比较 见以下时间表: 9.352s - stream-equal 0.008s - di

我正在寻找一种比较Node.js中两个文件是否为uniq的有效方法

我只需要知道文件是否相等。简单的
true/false
作为输出就足够了

在文件上构建校验和有点慢。同时,Linux
diff
命令对于比较大文件也相当快。所以我只是好奇Node.js中是否有高效的Linux
diff
命令的等价物或模块


正如评论中所建议的,我们可以尝试使用该模块

我只是尝试将相同的
1.3gb
文件与
streamequal
diff
进行比较

见以下时间表:

9.352s - stream-equal
0.008s - diff 
看起来
diff
速度快得离谱


我想在大文件上加快速度的一种方法是读取相同大小的大文件的前10个字节和后10个字节,然后进行比较。如果第一个字节和最后一个字节相等,那么文件完全相同的可能性很大


但我现在还不确定什么是正确的实现方法

这个模块很有前途:谢谢罗兰。我会查一查。正如我所见,它创建了文件流。对于大文件大小,它的效率有多高?让我们说几GB的文件。它看起来对一些GB的文件很有效,代码库看起来很简单,在实际实现包之前尝试运行一些测试。如果您正在使用流,您可以在发现流之间的差异时立即暂停并关闭流,并避免任何进一步的处理,因为您有一个文件不同的线索。据我所知,它将在第一个不同的字节失败,然后停止读取。因此,如果您的大多数文件在开始时都不同,那么它应该非常快。您可以使用child_进程在后台运行diff,还是尝试跨平台运行?无论您做什么,您都很难在Node中匹配本机编译的C程序。