Skip to content

Improve the hash rate of the Hash function #118

Open
@dkrutsko

Description

@dkrutsko

Currently, the Hash class has abysmal performance when compared to other CRC32 algorithms. Looking at our options here, here and here, it's clear that there's a lot of improvements which could be made. Read the table below to see how we compare (Ignore the differences in the result as the comparison uses the iSCSI/Castagnoli polynomial where as we use the Ethernet/ZIP one).

Option Result Performance
Naive - CPP 0xA0B96C51 147.0 MB/s = 0.29 bits/cycle
Tabular - 1 byte 0xA0B96C51 556.6 MB/s = 1.11 bits/cycle
Robot - Hash 0x1D75653D 561.1 MB/s = 1.12 bits/cycle
Tabular - 2 bytes 0xA0B96C51 795.3 MB/s = 1.59 bits/cycle
Hardware - 1 byte 0xA0B96C51 1324.1 MB/s = 2.65 bits/cycle
Tabular - 4 bytes 0xA0B96C51 1369.0 MB/s = 2.74 bits/cycle
Tabular - 8 bytes 0xA0B96C51 2416.1 MB/s = 4.83 bits/cycle
Checksums - AWS 0x1D75653D 2682.3 MB/s = 5.36 bits/cycle
Tabular - 16 bytes 0xA0B96C51 4011.5 MB/s = 8.02 bits/cycle
Hardware - 8 bytes 0xA0B96C51 10538.0 MB/s = 21.08 bits/cycle
Golden - AMD 0xA0B96C51 19564.9 MB/s = 39.13 bits/cycle
Golden - Intel 0xA0B96C51 30507.4 MB/s = 61.01 bits/cycle

Metadata

Metadata

Assignees

No one assigned

    Labels

    RequestA cool feature request for the library

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions