[webkit-dev] New hash template structure API design proposal
Maciej Stachowiak
mjs at apple.com
Mon Jun 27 01:49:14 PDT 2005
On Jun 26, 2005, at 5:22 AM, David D. Kilzer wrote:
> Google recently released a SparseHash project to SourceForge that's
> implemented in C++ with a BSD license.
>
> "An extremely memory-efficient hash_map implementation.
> 2 bits/entry overhead! The SparseHash library contains
> several hash-map implementations, including implementations
> that optimize for space or speed."
>
> http://sourceforge.net/projects/goog-sparsehash/
Cool, I'm looking at it. Thanks for the pointer!
It looks like their "dense_hash_map" uses the same design I was
planning, storing the values inline and requiring distinguished
values for empty and deleted buckets. Most C++ hashtable templates
(including the gcc implementation of hash_map) use separately
allocated nodes for the data. This makes it easier to put more of the
implementation in non-template code without losing a lot of speed,
but it is much slower, since you must allocate for every insertion.
sparse_hash_map is very interesting and could be useful in places
where saving memory is more important than access speed.
I will add, however, that the included hash functions are pretty weak.
Regards,
Maciej
More information about the webkit-dev
mailing list