比较缓冲区子集

Comparing Buffer Subsets

设置: 我有一个包含多个 int64 的缓冲区 (A),因此其大小是 8 字节的倍数。我还有一个包含单个 int64 的缓冲区 (B)。

问题: 我需要确定缓冲区 A 是否包含缓冲区 B 的 int64。我不能使用简单的 "contains",因为它也可以在不同的 int64 之间匹配。

到目前为止,我最好的办法是将 Buffer A 分成多个 int64 Buffer,然后对每一块做一个简单的相等比较。然而,这对于我的用例来说太慢了。

问题: 如何有效地检查 Buffer B 中的 int64 是否包含在 Buffer A 的 int64 集合中?


编辑: 为了澄清,我正在寻找代码示例。我想遍历缓冲区 A 并比较缓冲区的子集。你能在 nodejs 中做类似的事情吗?

最终采用了以下解决方案

let offset = -1;
do {
  offset = bufferA.indexOf(bufferB, offset + 1);
  if (offset % 8 === 0) {
    return true;
  }
} while (offset !== -1);
return false;