This is the mail archive of the guile@sourceware.cygnus.com mailing list for the Guile project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

markbits out of cells. 1st attempt.



I whipped the last errors from my gc patch (thus proving that you
shouldn't code on an empty stomach. When I wrote it, I made two
blatantly stupid errors that were very hard to find.)

	  see http://www.cs.uu.nl/~hanwen/software/

Performance is not very good (3 to 4 times slower than stock 1.3.4),
but it still surprises me, given how crude this hack is.

Next project: allocate heap segments in multiples of 2^x, and
intersperse the array of markbits through the heap so you can find the
markbits by doing

	markbits_p = address ^ (1 <<x - 1) 


* x has to be so large enough, such that most pages don't contain
  markbits.

* x can't be too large, or otherwise we create a lots of unused space
when the block that malloc returns is not aligned correctly.
 
* should the markbits be stored within the heap segment, or in a
separate spot? (ie. the difference between (*markbits_p)[k] and
markbits[k])


	dokkum:~/usr/src/guile-modules/benchmarks$ ~/usr/src/guile-core/libguile/guile -s ./run-ports 
	Opened log file, Fri  9 Jun 18:19:57
	System: Linux dokkum.cs.uu.nl 2.2.14  i686 
	Benchmark lib version: 4
	Benchmark: gc-time revision 1
	debug:sum            1   3.52s user  12.21s gc   0.00s sys  15.73s tot
	debug:sum            2   3.48s user  12.22s gc   0.01s sys  15.71s tot
	debug:sum            3   3.45s user  12.26s gc   0.00s sys  15.71s tot
	debug:sum            4   3.45s user  12.33s gc   0.02s sys  15.80s tot
	debug:sum            5   3.41s user  12.36s gc   0.04s sys  15.81s tot

	===> 1                   3.52s user  12.21s gc   0.00s sys  15.73s tot

	normal:sum           1   2.55s user   7.00s gc   0.02s sys   9.57s tot
	normal:sum           2   2.52s user   7.05s gc   0.03s sys   9.60s tot
	normal:sum           3   2.53s user   6.90s gc   0.02s sys   9.45s tot
	normal:sum           4   2.46s user   6.67s gc   0.01s sys   9.14s tot
	normal:sum           5   2.45s user   6.77s gc   0.00s sys   9.22s tot

	===> 3                   2.53s user   6.90s gc   0.02s sys   9.45s tot

	GC time is 77.6% of total time in the debugging evaluator and
	73.2% of total time in the normal.
	dokkum:~/usr/src/guile-modules/benchmarks$ /usr/bin/guile -s ./run-ports 
	Opened log file, Fri  9 Jun 18:22:45
	System: Linux dokkum.cs.uu.nl 2.2.14  i686 
	Benchmark lib version: 4
	Benchmark: gc-time revision 1
	debug:sum            1   4.29s user   3.49s gc   0.01s sys   7.79s tot
	debug:sum            2   4.33s user   3.49s gc   0.00s sys   7.82s tot
	debug:sum            3   4.40s user   3.50s gc   0.00s sys   7.90s tot
	debug:sum            4   4.35s user   3.51s gc   0.01s sys   7.87s tot
	debug:sum            5   4.31s user   3.54s gc   0.00s sys   7.85s tot

	===> 5                   4.31s user   3.54s gc   0.00s sys   7.85s tot

	normal:sum           1   2.73s user   1.93s gc   0.01s sys   4.67s tot
	normal:sum           2   2.74s user   1.96s gc   0.01s sys   4.71s tot
	normal:sum           3   2.75s user   1.92s gc   0.00s sys   4.67s tot
	normal:sum           4   2.78s user   1.89s gc   0.01s sys   4.68s tot
	normal:sum           5   2.78s user   1.91s gc   0.00s sys   4.69s tot

	===> 4                   2.78s user   1.89s gc   0.01s sys   4.68s tot

	GC time is 45.1% of total time in the debugging evaluator and
	40.5% of total time in the normal.


-- 

Han-Wen Nienhuys, hanwen@cs.uu.nl ** GNU LilyPond - The Music Typesetter 
      http://www.cs.uu.nl/people/hanwen/lilypond/index.html 


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]