【发布时间】:2011-11-12 22:09:56
【问题描述】:
在文件托管网站上使用的最佳哈希函数是什么?我想为每个文件存储哈希值,这样我就不必为重复文件浪费 HD 空间。
问题是,sha1/md5 对于大文件来说速度很慢,并且预期的流量很高。 最好的解决方案是什么?在内存中散列,同时通过网络从用户接收文件?
我主要关心的是网站的性能。预期流量很高,因此散列可能成为瓶颈。
【问题讨论】:
在文件托管网站上使用的最佳哈希函数是什么?我想为每个文件存储哈希值,这样我就不必为重复文件浪费 HD 空间。
问题是,sha1/md5 对于大文件来说速度很慢,并且预期的流量很高。 最好的解决方案是什么?在内存中散列,同时通过网络从用户接收文件?
我主要关心的是网站的性能。预期流量很高,因此散列可能成为瓶颈。
【问题讨论】:
对于大文件,所有哈希将以大致相同的速度运行,因为它们受限于您从磁盘读取文件的速度。一般来说,像您所描述的那样的网站会受到磁盘和网络速度的限制,而不是 CPU 上运行的任何东西。
【讨论】:
在文件托管网站上使用的最佳哈希函数是什么?
SHA 比 MD5 更好。
问题是,sha1/md5 对于大文件来说速度很慢,并且预期的流量很高。最好的解决方案是什么?在内存中散列,同时通过网络从用户接收文件?
这是内部托管还是外部托管?对于内部我会在客户端散列。 您是否尝试过估计有多少文件会重复?散列可能没有任何好处 - 与浪费 CPU 周期相比,它可以为您节省很少的空间。
【讨论】:
有许多不同的哈希公式,最好的解决方案是不同参数的函数,包括您希望在网站的生命周期内拥有多少个文件,有几个重复文件会有多糟糕,多少 CPU 马力您可以致力于哈希函数等。
Here 是我在维基百科中发现的一个有趣的 64 位哈希函数,它的计算速度应该非常快,并且应该提供合理的碰撞属性。还要检查链接到该页面上的其他哈希函数,其中一个肯定是您所需要的。
【讨论】: