diff options
author | merge-script <fanquake@gmail.com> | 2024-09-17 15:27:00 +0100 |
---|---|---|
committer | merge-script <fanquake@gmail.com> | 2024-09-17 15:27:00 +0100 |
commit | 2a0949f0977db2dbb7ac452e8d58d413b9526756 (patch) | |
tree | 515d0a51755780506406720d3ebb30f36ce6e8ea /rc/addressbook20.bmp | |
parent | bdbc90f29ac71253b8f31059fbf81da0bffe3bc8 (diff) | |
parent | 2a581144f28bad44de40122864f2f7b9fc5000de (diff) |
Merge bitcoin/bitcoin#30888: build: optimize .h generation in GenerateHeaderFrom{Raw,Json}.cmake
2a581144f28bad44de40122864f2f7b9fc5000de build: Minimize I/O operations in GenerateHeaderFromJson.cmake (Lőrinc)
aa003d1568b84372616e85b0295c1eb6b165c8a3 build: Minimize I/O operations in GenerateHeaderFromRaw.cmake (Lőrinc)
Pull request description:
Follow up of the https://github.com/bitcoin/bitcoin/pull/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:
```bash
time 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:
```bash
time 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
ACKs for top commit:
maflcko:
review ACK 2a581144f28bad44de40122864f2f7b9fc5000de 👒
hebasto:
ACK 2a581144f28bad44de40122864f2f7b9fc5000de.
willcl-ark:
tACK 2a581144f28bad44de40122864f2f7b9fc5000de
Tree-SHA512: 5e44f79d1c0dbb61d8b64f28d4c3c87a176981f72104b28800eef2037b0728076cbcf14ff07b05ff94d4e8800605586cfd5df00519db9027933c5943348c01d2
Diffstat (limited to 'rc/addressbook20.bmp')
0 files changed, 0 insertions, 0 deletions