[Mono-dev] tuning sgen performance & bug

Jonathan Shore jonathan.shore at gmail.com
Fri Aug 31 17:03:06 UTC 2012


HI,

sgen is now working for me (thanks to a subtle bug fix for thread-local-storage by Zoltan).   However, for one application, sgen is 25% slower than the same with the boehm collector.   I am processing some GBs of timeseries data, though only evaluating a window at a time.   As the window reaches some size, older objects in the timeseries are dereferenced.   The object size is 88bytes, but generate many millions across the course of a run.

I suspect that the nursery is too small, so that the objects I want to collect are now in the main heap.    Towards that end I wanted to extend the nursery, and attempted this:

export MONO_GC_PARAMS="nursery-size=2g"

This causes mono to crash immediately, with:

	* Assertion at sgen-gc.c:1206, condition `idx < section->num_scan_start' not met
	...

(this is on linux with the latest code on master, roughly 2.11.3+)

I took a look at the code, but requires too much context for me to understand the real cause of the issue.   I am guessing that there is some assumption re: the size of the nursery, block size, etc.

Finally, I am interested in trying the "copying collector" as discussed in this blog entry: 

http://schani.wordpress.com/2011/01/10/sgen-the-major-collectors/

I'm wondering if will get some performance advantages with this approach, whereas the nursery may be too small for my garbage working set.

Ideas?

Thanks
Jonathan


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ximian.com/pipermail/mono-devel-list/attachments/20120831/ce3a03f4/attachment.html>


More information about the Mono-devel-list mailing list