[Openmcl-devel] Hash Table performance

Osei Poku osei.poku at gmail.com
Tue Sep 23 15:34:28 PDT 2008

On Sep 23, 2008, at 6:09 PM, Chris Curtis wrote:

> On Sep 23, 2008, at 5:58 PM, Osei Poku wrote:
>> Hi,
>> CCL extensively uses the ENUMERATE-HASH-KEYS-AND-VALUES function
>> underneath most of hash table functions (MAPHASH, WITH-HASH-TABLE-
>> ITERATOR).  This causes a great deal of waste when iterating  
>> through a
>> very large hash table (like I have now ~10^8 entries).  The way I
> If you need to iterate through 10^8 entries, a hash table is simply  
> not the right data structure. For that matter, if you need to  
> iterate through any number of entries, a hashtable is generally a  
> Bad Idea.

This is understood and I am in perfect agreement.  In fact, my  
ultimate intent is quick lookups and not to use the hash table for  
iteration at all.  I was looking into iteration to be able check the  
contents of the hash table for debugging purposes.  I am perfectly  
happy with just being able to grab any key in the hash table and then  
displaying its value.  I guess I got caught up with trying to use  
slime inspector (which uses WITH-HASH-TABLE-ITERATOR) and somewhere  
along the way I lost track of what I actually needed to do in the  
first place.

After utilizing a few more brain cells, I realize I was wasting time  
tackling the wrong problem.  I'm just trying to debug the parser that  
generated the hash table!   I guess I just got lazy from always using  
slime inspector  :)

The problem still remains though.  Is there some slightly less  
expensive way (than enumerating the entire hashtable) of grabbing an  
arbitrary key-value pair from a hash table?


More information about the Openmcl-devel mailing list