Back to Aws Sdk Js V3

@aws-sdk/checksums Benchmarks

packages-internal/checksums/planning/checksums.md

3.1080.04.9 KB
Original Source

@aws-sdk/checksums Benchmarks

Platform: Node.js v22.22.2 (linux x64) Date: 2026-06-25T18:37:30.293Z Iterations per size: [10000, 5000, 2000, 200, 20, 5], Warmup: 1s per algo

CRC-32

SizeCrc32Js (JS)Crc32Node (node:zlib)@aws-crypto/crc32
32B31.0 MB/s34.8 MB/s28.0 MB/s
256B99.1 MB/s296.1 MB/s80.6 MB/s
1KB115.7 MB/s1.19 GB/s95.1 MB/s
64KB121.1 MB/s4.55 GB/s100.8 MB/s
1MB121.2 MB/s4.76 GB/s92.3 MB/s
10MB121.3 MB/s4.75 GB/s97.6 MB/s

CRC-32C

SizeCrc32cJs (JS)@aws-crypto/crc32c
32B89.2 MB/s27.9 MB/s
256B353.9 MB/s83.2 MB/s
1KB422.1 MB/s96.1 MB/s
64KB438.3 MB/s102.0 MB/s
1MB438.0 MB/s99.9 MB/s
10MB438.0 MB/s101.1 MB/s

CRC-64/NVME

SizeCrc64NvmeJs (JS)Crc64Nvme (auto CRT)
32B58.4 MB/s20.6 MB/s
256B259.8 MB/s141.4 MB/s
1KB380.0 MB/s394.0 MB/s
64KB422.8 MB/s1.76 GB/s
1MB423.9 MB/s1.83 GB/s
10MB424.0 MB/s1.83 GB/s

SHA-1 (hash)

Note: WebCrypto (crypto.subtle) was benchmarked from Node.js and may be significantly faster in a browser.

SizeSha1Js (JS)Sha1Node (node:crypto)Sha1WebCrypto
32B8.9 MB/s11.3 MB/s1.5 MB/s
256B64.6 MB/s91.0 MB/s11.2 MB/s
1KB140.7 MB/s344.8 MB/s40.1 MB/s
64KB192.0 MB/s1.72 GB/s621.7 MB/s
1MB195.0 MB/s1.80 GB/s991.7 MB/s
10MB194.9 MB/s1.81 GB/s183.1 MB/s

SHA-1 (HMAC)

Note: WebCrypto (crypto.subtle) was benchmarked from Node.js and may be significantly faster in a browser.

SizeSha1Js (JS)Sha1Node (node:crypto)Sha1WebCrypto
32B4.0 MB/s9.9 MB/s1018.0 KB/s
256B31.7 MB/s58.4 MB/s7.8 MB/s
1KB97.1 MB/s218.3 MB/s30.4 MB/s
64KB190.9 MB/s1.71 GB/s531.9 MB/s
1MB194.8 MB/s1.79 GB/s814.6 MB/s
10MB194.3 MB/s1.81 GB/s187.7 MB/s

SHA-256 (hash)

Note: WebCrypto (crypto.subtle) was benchmarked from Node.js and may be significantly faster in a browser.

SizeSha256Js (JS)Sha256Node (node:crypto)Sha256WebCrypto@aws-crypto/sha256-js
32B13.4 MB/s10.8 MB/s1.5 MB/s8.1 MB/s
256B51.1 MB/s132.7 MB/s10.7 MB/s33.0 MB/s
1KB99.7 MB/s215.1 MB/s40.1 MB/s75.9 MB/s
64KB122.0 MB/s1.61 GB/s850.0 MB/s99.7 MB/s
1MB122.5 MB/s1.69 GB/s1.15 GB/s100.5 MB/s
10MB122.6 MB/s1.70 GB/s118.1 MB/s100.5 MB/s

SHA-256 (HMAC)

Note: WebCrypto (crypto.subtle) was benchmarked from Node.js and may be significantly faster in a browser.

SizeSha256Js (JS)Sha256Node (node:crypto)Sha256WebCrypto@aws-crypto/sha256-js
32B4.0 MB/s13.5 MB/s1.0 MB/s3.6 MB/s
256B20.1 MB/s89.7 MB/s8.0 MB/s24.2 MB/s
1KB76.4 MB/s269.3 MB/s29.6 MB/s65.1 MB/s
64KB121.0 MB/s1.58 GB/s742.2 MB/s99.5 MB/s
1MB122.4 MB/s1.69 GB/s997.1 MB/s100.4 MB/s
10MB122.6 MB/s1.70 GB/s117.9 MB/s100.4 MB/s

MD5

SizeMd5Js (JS)Md5Node (node:crypto)
32B12.5 MB/s17.8 MB/s
256B50.4 MB/s112.3 MB/s
1KB113.8 MB/s363.7 MB/s
64KB142.6 MB/s761.1 MB/s
1MB144.3 MB/s776.2 MB/s
10MB144.1 MB/s777.6 MB/s