From: Vladimir T. <vtz...@gm...> - 2008-09-18 13:00:29
|
Hi, On Sep 17, 2008, at 1:34 AM, Bruno Haible wrote: > > If you can reproducibly measure than WRITE-TO-STRING with :CIRCLE T > is faster > with the reentrant get_circularities() than with the embedded-mark- > bit one, > then please switch to this implementation if defined(VIRTUAL_MEMORY). > (If !defined(VIRTUAL_MEMORY) the one with embedded mark bits is > better, > since it does not require additional temporary memory.) > > I can well imagine the reason why it's faster: It writes to a more > concentrated > memory area, thus causing less cache writebacks. > With attached patch to spvw_circ.d: make check-tests /* on G4 OSX */ CVS HEAD: Real time: 440.88837 sec. Run time: 311.81845 sec. Space: 796342156 Bytes GC: 1049, GC time: 84.52206 sec. CVS HEAD + spvw_circ.d patch: CL-USER> (time (tw2s 10000 10)) Real time: 423.2096 sec. Run time: 298.95453 sec. Space: 791897864 Bytes GC: 1043, GC time: 78.07748 sec. However I was not able to create reproducible test with WRITE-TO- STRING that shows any significant difference between the CVS and patched version. Vladimir |