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

[no subject]

In system 25.0, with microcode 612, on LISP Machine Five:

I think the default extension used in ARRAY-PUSH-EXTEND is a loss.  I was just being
screwed by the fact that LMIO1;PRESS  calls it without a 3rd argument (I have at least
fixed that) and I found that it was copying a 32k word array for every 64. word
extension (needless to say, it caused infinite paging...).  I suggest that a better
behavior for ARRAY-PUSH-EXTEND would be to double the size of the array, if its
current size is less than some magic ("BIG" array) threshold (say, somewhere between
1k and 10k words), and if its greater than this threshold, increase by a fixed
percentage (e.g. 20%) of the current size (this has the effect of growing the
increment size linearly with the size of the array).  Now I don't claim that this
is the best in all cases, but probably leads to more desirable behavior in the
case where the user doesn't specifically control it.  A constant increment is
almost never the right thing, statistically (because its only the right thing
when you know you are not going to need to expand the array much more).