我正在尝试优化一个程序,该程序需要在流的每个位置(字节)处为数据流中的恒定大小窗口计算哈希。在比可用 RAM 大得多的磁盘文件中查找重复项是必需的。目前我为每个窗口计算单独的 md5 哈希,但它花费大量时间(窗口大小为几千字节,因此每个字节的数据被处理几千次)。我想知道是否有一种方法可以在恒定(与窗口大小无关)时间内计算每个后续哈希(例如移动平均线中 1 个元素的加法和减法)?散列函数可以是任何东西,只要它不提供长散列(50-100 位就可以)并且它的计算速度相当快。
如果您指出 linux 上可用的现有库函数(如果有的话),我将不胜感激。
这是我在这里的第一个问题,所以如果我做错了什么,请多多包涵。
问候,巴托什