nimbus-eth1/nimbus/db/aristo/aristo_desc
Jacek Sieka f3a56002ca
Turn payload into value type (#2483)
The Vertex type unifies branches, extensions and leaves into a single
memory area where the larges member is the branch (128 bytes + overhead) -
the payloads we have are all smaller than 128 thus wrapping them in an
extra layer of `ref` is wasteful from a memory usage perspective.

Further, the ref:s must be visited during the M&S phase of garbage
collection - since we keep millions of these, many of them
short-lived, this takes up significant CPU time.

```
Function	CPU Time: Total	CPU Time: Self	Module	Function (Full)	Source File	Start Address
system::markStackAndRegisters	10.0%	4.922s	nimbus	system::markStackAndRegisters(var<system::GcHeap>).constprop.0	gc.nim	0x701230`
```
2024-07-14 12:02:05 +02:00
..
desc_backend.nim storage: store root id together with vid, for better locality of refe… (#2449) 2024-07-04 15:46:52 +02:00
desc_error.nim merge: avoid hike allocations (#2472) 2024-07-11 13:26:46 +02:00
desc_identifiers.nim storage: store root id together with vid, for better locality of refe… (#2449) 2024-07-04 15:46:52 +02:00
desc_nibbles.nim merge: avoid hike allocations (#2472) 2024-07-11 13:26:46 +02:00
desc_structural.nim Turn payload into value type (#2483) 2024-07-14 12:02:05 +02:00