[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

hash table access time



    Date: Mon, 24 Aug 87 16:58:30 PDT
    From: Robert Kasper <kasper@vaxa.isi.edu>


    To frequent hashers:

    We've just done some timings to compare hash-table
    access speed with assoc-list access speed,
    on a Symbolics using a Genera 7.1 system.

    For EQL hash-tables, the access time was roughly
    the same as the time to find the last element of
    an assoc-list with 19 elements.

    Note that, on the average, it is only necessary to search
    half of an assoc-list, so the threshold of hash-table usefulness
    is something greater than 35 elements.
    I was surprised that it was this high,
    since hash-tables are supposed to be designed to optimize access time.
    Does anyone know what makes hashing this slow?
    Is it simply because the numerical hashing operations
    are much slower than list access operations on the lisp machine hardware?

ASSOC with a test of EQL is microcoded.  On a 3640, the microcoded
version is about twice as fast as an equivalent version in Lisp.  (If
the alist is cdr-coded, then the microcode is almost three times as
fast.)  In the Lisp vs. Lisp competition, the 19 and 35 are halved,
which is probably more in line with what you were expecting.

    Hash-table access fared even worse compared to assoc-lists
    on a TI Explorer system, so this is not just
    a quirk of Symbolics systems.

    Does anyone know of any tricks to make hash-table access faster?

     -- Bob Kasper
	USC/Information Sciences Institute
	ARPANET: KASPER@VAXA.ISI.EDU