Follow up of the #30883 revert.
Replaced multiple file writes with a single string template write.
The raw content is first grouped into 8 byte chunks, followed by another regex replace which wraps them in std::byte
or just the raw bytes, prefixed with 0x
.
Tested the output with diff -w
and they’re the same - only whitespace differences because slightly different source formatting.
Tested the Raw
performance with:
0time cmake -DRAW_SOURCE_PATH=src/bench/data/block413567.raw -DHEADER_PATH=build/after/block413567.raw.h -DRAW_NAMESPACE=benchmark::data -P cmake/script/GenerateHeaderFromRaw.cmake
Before:
15.41s user 23.06s system 97% cpu 39.593 total
After:
0.77s user 0.06s system 97% cpu 0.849 total
Tested the Json
performance with:
0time cmake -DJSON_SOURCE_PATH=src/secp256k1/src/wycheproof/ecdsa_secp256k1_sha256_bitcoin_test.json -DHEADER_PATH=build/after/ecdsa_secp256k1_sha256_bitcoin_test.json -P cmake/script/GenerateHeaderFromJson.cmake
Before:
3.57s user 6.01s system 94% cpu 10.136 total
After:
0.17s user 0.01s system 98% cpu 0.187 total