https://gitlab.synchro.net/main/sbbs/-/commit/f7c50ed5e3d431349acb21f5
Added Files:
src/hash/crc32_slicing.h
Modified Files:
src/hash/crc32.c crc32.h src/sbbs3/zmodem.c
Log Message:
Process CRC-32 data four bytes at a time
Add slicing-by-four lookup tables and update the CRC-32 helper to
process four input bytes per iteration. Use the same helper while
transmitting ZMODEM data, keeping CRC calculation and byte transmission
in one pass.
This reduces dependency chaining in the upload hot path. Six
interleaved 1 GiB uploads to lrz improved average throughput from
44.586 MiB/s to 45.992 MiB/s, a 3.15 percent increase.
Verify slicing results against the byte-at-a-time implementation across unaligned offsets, lengths, and initial CRC states, and run the SyncTERM
test suite.
Refs #1195
Co-authored-by: OpenAI Codex <
noreply@openai.com>
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net