<div>I have implemented a new option, --enable-precisegc, which is linked to new ways of using the garbage collector.</div><div><br></div><div>The objective is to increase the accuracy of the mark phase, so that no or little data is retained, and the whole process becomes faster. Numbers are not yet optimal, but show a decrease in memory use and slight speedups.</div>
<div><br></div><div>Note that these are not final numbers, since we are still in the process of learning from the GC developers how to best use their library. Future changes that I would like to achieve with their help are: use of custom marking procedures for the interpreter and lisp stacks, inlining object allocation, better garbage collector statistics, parallel marking... As usual, help is welcome.</div>
<div><br></div><div>Juanjo</div><br>;;; Running full test suite with type information (64-bits)<br>real time : 185.434 secs<br>run time : 113.466 secs<br>gc count : 146 times<br>consed : 3483573056 bytes<br>;;; ... and without it (64-bits)<br clear="all">
real time : 190.076 secs<br>run time : 118.702 secs<br>gc count : 492 times<br>consed : 52093198016 bytes<br><br>
;;; Bignum tests (see mailing list archive) (64-bits)<br>
real time : 0.050 secs<br>run time : 0.048 secs<br>gc count : 2 times<br>consed : 12948224 bytes<br>real time : 0.914 secs<br>run time : 0.910 secs<br>gc count : 69 times<br>consed : 725234496 bytes<br>real time : 3.403 secs<br>
run time : 3.388 secs<br>gc count : 410 times<br>consed : 4352812928 bytes<br>
;;; ... and without type information<br>
real time : 0.048 secs<br>run time : 0.044 secs<br>gc count : 22 times<br>consed : 388736768 bytes<br>real time : 1.075 secs<br>run time : 1.073 secs<br>gc count : 856 times<br>consed : 8156832384 bytes<br>real time : 3.995 secs<br>
run time : 3.983 secs<br>gc count : 3259 times<br>consed : 30745329216 bytes<br><br>
<br>
;;; Bignum tests with type information (32-bits)<br><div>real time : 0.184 secs</div><div>run time : 0.180 secs</div><div>gc count : 5 times</div><div>consed : 12026192 bytes</div><div>real time : 3.731 secs</div><div>
run time : 3.696 secs</div><div>gc count : 245 times</div><div>consed : 655936912 bytes</div><div>real time : 13.549 secs</div><div>run time : 13.446 secs</div><div>gc count : 1353 times</div><div>consed : 3838393264 bytes</div>
;;; ... and without type information<br><div>real time : 0.190 secs</div><div>run time : 0.187 secs</div><div>gc count : 5 times</div><div>consed : 10003392 bytes</div><div>real time : 3.915 secs</div><div>run time : 3.888 secs</div>
<div>gc count : 260 times</div><div>consed : 667864528 bytes</div><div>real time : 14.388 secs</div><div>run time : 14.286 secs</div><div>gc count : 1451 times</div><div>consed : 3950312096 bytes</div><div><br></div>
<br>-- <br>Instituto de Física Fundamental, CSIC<br>c/ Serrano, 113b, Madrid 28006 (Spain) <br><a href="http://juanjose.garciaripoll.googlepages.com" target="_blank">http://juanjose.garciaripoll.googlepages.com</a><br>