HomePhabricator

Add pool based memory resource & allocator

Description

Add pool based memory resource & allocator

Summary:
A memory resource similar to std::pmr::unsynchronized_pool_resource, but
optimized for node-based containers.

Co-Authored-By: Pieter Wuille <pieter@wuille.net>

This is a partial backport of core#25325
https://github.com/bitcoin/bitcoin/pull/25325/commits/b8401c3281978beed6198b2f9782b6a8dd35cbd7

with ARM fixes from
https://github.com/bitcoin/bitcoin/pull/28913/commits/ce881bf9fcb7c30bb1fafd6ce38844f4f829452a

Test Plan:
ninja all check-all bench-bitcoin

|               ns/op |                op/s |    err% |     total | benchmark
|--------------------:|--------------------:|--------:|----------:|:----------
|               26.04 |       38,408,682.21 |    1.3% |      0.02 | `PoolAllocator_StdUnorderedMap`
|               10.29 |       97,207,783.17 |    0.3% |      0.01 | `PoolAllocator_StdUnorderedMapWithPoolResource`

Reviewers: #bitcoin_abc, Fabien

Reviewed By: #bitcoin_abc, Fabien

Differential Revision: https://reviews.bitcoinabc.org/D16175

Details

Provenance
Martin Leitner-Ankerl <martin.ankerl@gmail.com>Authored on Jun 11 2022, 07:23
PiRKCommitted on May 20 2024, 15:46
PiRKPushed on May 20 2024, 15:46
Reviewer
Restricted Project
Differential Revision
D16175: Add pool based memory resource & allocator
Parents
rABCda80299db64c: Add simulation-based CCoinsViewCache fuzzer
Branches
Unknown
Tags
Unknown