Re: GC-(in)capability

Paolo Molaro <[email protected]> Wed, 8 Sep 2004 12:54:37 +0200
Newsgroups gmane.comp.gnome.mono.garbage-collection
Message-ID <[email protected]>
On 09/06/04 Marek Paska wrote:
> I am deeply disappointed by poor performance (or better capability) of Mono's
> GC. I've written a program for indexing FTP servers and searching its files by
> name. It uses inverted files as indexes and it is designed for millions of
> filenames and "nearly real time" answers of users' queries.
> 
> Under MS .Net Framework 1.1 it works perfectly. I would like to run it on Linux.
> But under Mono I am not able to create index from crawled data. The problem is
> caused by memory fragmentation. While work-space of my application (during my
> index build) stays constant (150 MB), the space allocated in virtual memory
> grows all the time until it eats all the swap space (1 GB) and is killed by
> kernel. (Or I receive message "GC warning -> returning null" (On Linux) or "Too
> many heap sections" (under Win).)

What version of mono are you using? Mono from CVS has significantly
better behaviour than mono 1.0.x for that kind of loads.

> I guess the fact that Mono uses GC algorithm that doesn't perform heap
> compaction (and therefore allows fragmentation) is a big mistake. And absence of
> stop-the-world-pauses is not sufficient argument for me. For my application (and
> many other common) the GC-pauses are not very harmless. Otherwise applications

We use the Boehm GC, which causes pauses as well. As said, mono from cvs
HEAD has better behaviour and we're incrementally improving it. We're
also working on a compacting generational GC, but that will be available
only in a year or so.

lupus

-- 
-----------------------------------------------------------------
[email protected]                                     debian/rules
[email protected]                             Monkeys do it better
_______________________________________________
Mono-gc-list maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/mono-gc-list