The problem is that Tree::RedBlack is implemented in pure Perl, using a blessed hash for each node.
Without having tried it, I estimate that a tree to hold my 150e6 values would require ~40GB of ram.
I haven't found an XS implementation, but even then it would require at least 2x64-bit pointers + a 64-bit pointer to an SvUV + 1-bit per node. If they stored the R/B in an unused bit in one of the pointers, then that's 56 bytes * 150e6 = ~8GB, which is too much.
In reply to Re^2: Heap structure for lookup?
by BrowserUk
in thread Heap structure for lookup?
by BrowserUk
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |