[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