[Mono-dev] tuning sgen performance & bug
jonathan.shore at gmail.com
Fri Aug 31 17:03:06 UTC 2012
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:
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:
I'm wondering if will get some performance advantages with this approach, whereas the nursery may be too small for my garbage working set.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Mono-devel-list