[Mono-list] Unable to create more than 1000 objects.

Rodrigo Kumpera kumpera at gmail.com
Mon Dec 12 11:45:13 EST 2011


In your sample you're creating a lot of large (4Mb) objects, which will
require 2Tb of storage
if you want to create 500 million of them.

On Sun, Dec 11, 2011 at 11:16 PM, Dragony <cschmid at rapidshare.com> wrote:

> Hi.
>
> I am running mono under linux Debian, newest version. I wonder if mono is
> unable to use my 64 gb of ram equally. I need around 500 million objects,
> each has around 100 bytes. I thought time has come where OOP can be used
> for
> making my life easier, but seems not so :(
>
> I managed to create 500 million empty objects, but as soon as I add
> attributes, the number of objects I can create decreases drastically. I
> have
> written a short program to show you what I mean.
>
> PS: I tried sgen GC, this works a little bit better, which means it works
> for the test program, but to create 500 million small objects its slow as
> hell.....
>
> using System;
>
> class Test {
>  static Unit[] units = new Unit[10000];
>  static public void Main () {
>    for (int i = 0; i < 10000; i++) units[i] = new Unit();
>  }
> }
>
> class Unit {
> // dummy array/crashes after/memory consumption when crashing
> //  1 million = 955 units = 3822 mb
> //  2 million = 905 units = 7243 mb
> //  3 million = 887 units = 10645 mb
> //  4 million = 856 units = 13699 mb
> //  5 million = 510 units = 10200 mb
> //  6 million = 515 units = 12361 mb
> // 10 million = 508 units = 20321 mb
> // 15 million = 508 units = 30481 mb
> // 20 million = 508 units = 40641 mb
> // 25 million = 508 units = 50802 mb
> // 30 million = 508 units = 60960 mb
>
>  int[] dummy = new int[1000000]; // Change this number to test. Above are
> tested examples on a 64GB machine.
>  static int units = 0;
>
>  public Unit() {
>    Console.WriteLine("Now having " + ++units + " units. " +
> (GC.GetTotalMemory(false) / 1000000).ToString() + " MB");
>  }
> }
>
> /* Above examples tested with:
> Mono JIT compiler version 2.10.5 (Debian 2.10.5-1)
> Copyright (C) 2002-2011 Novell, Inc, Xamarin, Inc and Contributors.
> www.mono-project.com
>        TLS:           __thread
>        SIGSEGV:       altstack
>        Notifications: epoll
>        Architecture:  amd64
>        Disabled:      none
>        Misc:          softdebug
>        LLVM:          supported, not enabled.
>        GC:            Included Boehm (with typed GC and Parallel Mark)
> */
>
>
>
> --
> View this message in context:
> http://mono.1490590.n4.nabble.com/Unable-to-create-more-than-1000-objects-tp4184397p4184397.html
> Sent from the Mono - General mailing list archive at Nabble.com.
> _______________________________________________
> Mono-list maillist  -  Mono-list at lists.ximian.com
> http://lists.ximian.com/mailman/listinfo/mono-list
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.ximian.com/pipermail/mono-list/attachments/20111212/19cf9122/attachment.html 


More information about the Mono-list mailing list