№9
Если мы не знаем финального размера таблицы, но можем предугадать как она будет увеличиваться - можно снабдить make-hash-table этими данными через ключ :rehash-size. Целое число указывает абсолютное увеличение размера, а дробное - относительное
(defparameter *my-hash* (make-hash-table :rehash-size 100000))
; *MY-HASH*
(hash-table-size *my-hash*)
; 65
(hash-table-rehash-size *my-hash*)
; 100000
(time (dotimes (n 100000) (setf (gethash n *my-hash*) n)))
; Compiling LAMBDA NIL:
; Compiling Top-Level Form:
;
; Evaluation took:
; 0.07 seconds of real time
; 0.05 seconds of user run time
; 0.01 seconds of system run time
; 0 page faults and
; 2001360 bytes consed.
; NIL
Источник:
cl-cookbook.sourceforge.net
cl-cookbook.sourceforge.net