[armedbear-devel] (lisp) Stack management efficiency

Tobias C. Rittweiler tcr at freebits.de
Tue Jul 21 14:52:51 UTC 2009

Ville Voutilainen writes:

> where we get rid of the second chunk and recycle the first. Thus the
> second chunk becomes collected at this point. This obviously means
> that if there are many calls at the chunk boundary, we allocate and
> collect the second chunk continuously. No solution is perfect, I
> guess.

To remedy this problem, you typically make a new chunk twice as large as
the last chunk. And you only deallocate, if your actually consumed
capacity falls below 1/4 of the total capacity. This results in
amortized constant time for insertion/deletion.

You don't have to hack that up from scratch, btw: it's what Java's
ArrayList does. (Which is not synchronized.)


Diese Nachricht wurde auf Viren und andere gefaerliche Inhalte untersucht
und ist - aktuelle Virenscanner vorausgesetzt - sauber.
Freebits E-Mail Virus Scanner

More information about the armedbear-devel mailing list