# New Ticket Created by  "Peter Gibbs" 
# Please include the string:  [netlabs #619]
# in the subject line of all future correspondence about this issue. 
# <URL: http://bugs6.perl.org/rt2/Ticket/Display.html?id=619 >


The attached patch improves performance for programs that allocate an
increasing amount of string (or other buffer) memory, rather than
extensively manipulating a small amount of data.

It works by delaying memory pool compaction until a preset fraction
(currently set to 20%) of the total memory allocated to that pool can be
reclaimed; this significantly reduces the number of compaction passes on
programs that allocate a lot of memory without releasing it soon thereafter.

Programs that don't fall into this category may experience a slight
performance decrease due to the increased overhead of tracking the size of
the reclaimable data.
The next round of updates will aim at further reducing the number of DOD
runs, which should regain performance in programs that create and delete a
large number of objects.

Benchmark                                           Before       After
life.pasm, 5000 generations               86.77        87.87
zip.pasm, jit_cpu.c (56641 bytes)      52.02          4.22
reverse.cola, jit_cpu.c                            8.24          5.14
hanoi.pasm, 14 discs                          31.42        31.80

All programs are run with output suppressed (life) or redirected to
/dev/null

I would be very interested in getting benchmark results from other platforms
(above are from a Pentium 166MHz, 96MB, linux 2.2.18)

--
Peter Gibbs
EmKel Systems

Reply via email to