try-move-in-generation generation-number time-threshold &optional fraction-threshold => nil
0 for the most recent generation, 1 for the most recent two generations, and so on up to a maximum (usually 3). Numbers outside this range signal an error.
A real number, defining a time in seconds.
A real number between 0 and 1, defining the minimum fragmentation to actually move. The default is 0.25.
try-move-in-generation
finds the most fragmented segment in the generation specified, and moves objects out of this segment, leaving it empty. This operation is repeated until time-threshold seconds have elapsed, when the function returns. Because the operation cannot be stopped in the middle, the actual time taken will always be larger than time-threshold.
If fraction-threshold is 1, try-move-in-generation
does nothing. If fraction-threshold is 0, try-move-in-generation
will move all uncompacted segments (unless it runs out of time). With the default (0.25) try-move-in-generation
moves only moderately fragmented segments.
This function is typically used after a call to check-fragmentation
. For more information, see the LispWorks User Guide.