lex at cc.gatech.edu
Sun Sep 30 19:11:01 UTC 2001
> As far as I can tell it is a very good alternative to balanced binary
> trees (much easier implementation being prime advantage I believe) -
> performance wise they are much the same. I read somewhere that database
> implementations still might prefer Btrees because of some property that
> make them more efficient when it comes to distribution on secondary
> memory - but I don't know the details on that.
On disk, the exact number of dereferences makes a big difference. With
a binary tree, you divide your search space by 2 with each dereference;
with a btree, you divide it by a larger number. I'd guess it's similar
for skip lists, though I've only heard about them, not studied them.
Hmm, with "main" memory being so much slower than cache, btrees might
even start making sense for in-memory structures. But not necessarily
for Squeak, where an "array of foo's" won't necessarily have all of the
foo's next to each other, anyway, and thus where accessing items within
a node still causes fetches to distant parts of memory.
Anyway, I'd rather work on something higher-level. This
hyper-optimization stuff is only useful on small portions of most of the
programs I ever work on.
More information about the Squeak-dev