[Mono-list] Why mono GC does not realloc the heap after collect?
Miguel de Icaza
miguel at novell.com
Tue Nov 3 14:45:17 EST 2009
Because Mono does not support a collector like this, it uses a different
kind, a conservative collector.
> //Example code
> //On the NetFarmewort - all work fine
> //On Mono - ~105MiB in the heap, after GC.Collect(). Expected ~5 MiB
> ////////////////
> using System;
> using System.Collections.Generic;
> using System.Text;
>
> namespace mono_gc_test
> {
> class Program
> {
> static object alloc100MB()
> {
> byte[] data = new byte[100 * 1024 * 1024];
> return data;
> }
> static void msg(string text, bool wait)
> {
> Console.WriteLine(text);
> if (wait)
> Console.ReadLine();
> }
> static void Main(string[] args)
> {
> object data = null;
> msg("Mono GC.Collect() realloc test.", false);
> msg("Press ENTER to alloc 100MiB of data", true);
> data = alloc100MB();
> msg("Press ENTER to GC.Collect()", true);
> data = null;
> GC.Collect();
> msg("Press ENTER to exit", true);
> }
> }
> }
More information about the Mono-list
mailing list