Skip to content

perf: enable mimalloc in release and ARMv8 AES on aarch64 - #1911

Open
BradKollmyer wants to merge 2 commits into
rustic-rs:mainfrom
BradKollmyer:perf/mimalloc-release
Open

perf: enable mimalloc in release and ARMv8 AES on aarch64#1911
BradKollmyer wants to merge 2 commits into
rustic-rs:mainfrom
BradKollmyer:perf/mimalloc-release

Conversation

@BradKollmyer

Copy link
Copy Markdown

Part of rustic-rs/rustic_core#564.

CLI side of the prune warm-cache speedup:

  • Enable mimalloc when building with --features release.
  • Set --cfg aes_armv8 --cfg polyval_armv8 for aarch64 Apple/Linux targets so AES-GCM uses ARMv8 crypto instead of aes::soft.

rustic_core/.cargo/config.toml already has those AES flags, but they do not apply when the workspace is this CLI. Without them, Darwin prune used-blobs stays on software AES and does not reach the 0:16 number in #564.

Warm-cache prune on musl spent a lot of time in libc malloc. mimalloc
cut reading index from ~1:36 to 0:19 and finding used blobs from 12:44
to 10:34 versus musl malloc; tikv-jemallocator was slower than mimalloc
on the tree walk.
Without --cfg aes_armv8 Darwin prune used software AES and spent ~9s
extra in finding used blobs versus rustic dev.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant