[MLton-devel] yeah, that did the trick

Stephen Weeks sweeks@sweeks.com
Tue, 17 Sep 2002 11:46:52 -0700


> Turns out I exagerated here.  I just ran a self compile on each
> (virtual) machine and here is the result.
> 
> FreeBSD	4.6.2	MLton finished in 486.97 + 210.66 (30% GC)
> RedHat 7.1	MLton finished in 297.67 + 165.61 (36% GC)
> 
> So it takes only 50% longer on FreeBSD.  Maybe some of that is due to
> poorer emulation on vmware's part, but I would doubt much.  Also, some
> may be due to very different mmap behavior on the two machines.  I've
> included the gc-summary stats from the self compile below.  FreeBSD
> manages to almost always give MLton the memory it needs for doing
> copying collection, while on RedHat, MLton switches to mark compact
> and is stuck there for a while.  This could explain things due to
> FreeBSD losing time due to zeroing out pages for new semispaces
> constantly being created.  I also see that the time spent in
> collection for FreeBSD (74.7 + 7.4) doesn't come anywhere close to the
> total GC time (210.7).  This must either be due to zeroing costs, or
> maybe the absence of mremap on FreeBSD.

I just ran another test that shows that the difference was due to
different mmap results leading to different GC strategies.  To force
both systems to use mark compact and avoid constant mmaping of new
semispaces, I ran a self compile on each machine with

	@MLton copy-ratio 8 grow-ratio 8 --

Now, the running times are fairly close:

FreeBSD		MLton finished in 258.51 + 136.80 (35% GC)
RedHat		MLton finished in 234.01 + 116.68 (33% GC)

FreeBSD is only 10% slower.  I'm willing to live with that.  The GC
summary data is below.  It also shows that there is no longer all that
missing GC time, which I now bet was due to zeroing costs, which seem
to be much higher on FreeBSD than Linux.  I'll run some more tests to
confirm that.


FreeBSD
------------------------------------------------------------
GC type		time ms	 number		  bytes	      bytes/sec
-------------	-------	-------	---------------	---------------
copying		 12,070	     21	    587,714,700	     48,692,186	
mark-compact	107,820	     24	  1,943,467,536	     18,025,111	
minor		     14	     52	         16,264	      1,161,714	
total GC time: 136,803 ms (36.5%)
max pause: 7,906 ms
total allocated: 23,012,383,856 bytes
max live: 109,345,560 bytes
max semispace: 841,928,704 bytes
max stack size: 4,571,136 bytes
marked cards: 142
minor scanned: 1,902,724 bytes
minor skipped: 33,128 bytes

RedHat
------------------------------------------------------------
GC type		time ms	 number		  bytes	      bytes/sec
-------------	-------	-------	---------------	---------------
copying		 12,570	     23	    702,249,812	     55,867,127	
mark-compact	101,690	     23	  1,794,119,272	     17,643,025	
minor		      0	     72	         16,504	              0	
total GC time: 116,680 ms (35.4%)
max pause: 7,370 ms
total allocated: 23,011,928,908 bytes
max live: 102,725,204 bytes
max semispace: 412,397,568 bytes
max stack size: 4,571,136 bytes
marked cards: 196
minor scanned: 1,351,072 bytes
minor skipped: 33,408 bytes


-------------------------------------------------------
This SF.NET email is sponsored by: AMD - Your access to the experts
on Hammer Technology! Open Source & Linux Developers, register now
for the AMD Developer Symposium. Code: EX8664
http://www.developwithamd.com/developerlab
_______________________________________________
MLton-devel mailing list
MLton-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mlton-devel