与其说是性能提升,不如说是能不能利用上多线程的问题。也就是所谓“可扩展性”。
对于比较长的输入数据(至少要比单个块长得多,比方说 MiB 级别)才会体现优势。相比之下哈希表使用的非密码学哈希更多是为短输入优化的(显然大部分时候您的哈希表里单个 key 并不会长达 MiB 级别),所以采用简单的 Merkle Damgard 也是合理的。
事实上典型的哈希表会有很多几到几十个字节的短输入(比方说 JSON 键的典型长度),对于这种长度范围来说 SIMD 都不一定有正向提升, AVX512 的话很可能还负优化。“每次哈希”的 initialize/finalize 开销也可能会压过“每块数据”的 compress 开销。
这也是设计 xxHash 这类“快哈希”的时候跟设计密码学哈希的时候要做不同考量的方面。