• H
    Speed up CRC calculation using slicing-by-8 algorithm. · 025c0242
    Heikki Linnakangas 提交于
    This speeds up WAL generation and replay. The new algorithm is
    significantly faster with large inputs, like full-page images or when
    inserting wide rows. It is slower with tiny inputs, i.e. less than 10 bytes
    or so, but the speedup with longer inputs more than make up for that. Even
    small WAL records at least have 24 byte header in the front.
    
    The output is identical to the current byte-at-a-time computation, so this
    does not affect compatibility. The new algorithm is only used for the
    CRC-32C variant, not the legacy version used in tsquery or the
    "traditional" CRC-32 used in hstore and ltree. Those are not as performance
    critical, and are usually only applied over small inputs, so it seems
    better to not carry around the extra lookup tables to speed up those rare
    cases.
    
    Abhijit Menon-Sen
    025c0242
pg_crc.c 56.6 KB