[DGD] Mappings

Shentino shentino at gmail.com
Sat Aug 13 18:47:51 CEST 2011


I've been doing some performance tuning on my bigstruct maps, and I'm trying
my darndest to avoid as much runtime overhead as I can, which up until
moments ago merely took into account the creation and copying of arrays.

But then I realized that somehow, objects destructing causes automatic
removal from the mapping, and somehow the mapping actually counts as
smaller.

I later found that destructing an object seems to induce more overhead by
triggering an extra sweep in the mapping for destructed objects during
compaction.

Questions

1.  How much overhead, if any, is this to be concerned about?
2.  Besides array creation/merging/splitting/slicing, are there any sources
of overhead that I should be concerned about?

The current structure of my bigmap is a binary tree of nodes each of which
holds a small section of the keyspace of the entire bigmap, with nodes being
split and merged as needed, both to avoid overflow and to keep the tree
reasonably compact as I assume that checking a single mapping is faster than
finding the right node to check.



More information about the DGD mailing list