[ AlisaBH @ 08.10.2007. 11:16 ] @
Pozdrav,
Imam sljedeci problem. Aplikacija koja je pisana u C#, pokrece se pod Mono-m na Linuxu. Sve radi Ok, a onda nakon 24 sata ili vise se jednostavno aplikacije ubije i izbaci na ekranu sljedecu gresku.

Too many heap sections: Increase MAXHINCR or MAX_HEAP_SECTS
Stacktrace:

at (wrapper managed-to-native) System.String.InternalAllocateStr (int) <0x0000b>

Native stacktrace:

mono [0x51ecc8]
/lib64/libpthread.so.0 [0x2b02e4ea6140]
/lib64/libc.so.6(gsignal+0x35) [0x2b02e5133aa5]
/lib64/libc.so.6(abort+0x110) [0x2b02e5134e60]
mono [0x4e5929]
mono [0x4e729a]
mono [0x4e7396]
mono [0x4e7edf]
mono [0x4e836c]
mono [0x4e0bb3]
mono [0x52dc4a]
mono [0x4e2110]
mono(mono_string_new_size+0x50) [0x49e0a0]
[0x4042831a]


Mozda je neko ima slican problem. Ima li ko kakvu ideju sta bi moglo da bude.
Hvala
[ jablan @ 08.10.2007. 12:35 ] @
Pomoglo bi da kažeš šta se dešava u programu u tom trenutku, kao i šta program radi, da li kreira mnogo objekata i gde ih čuva itd...
[ AlisaBH @ 08.10.2007. 13:08 ] @
Program je u stavri SMS centar. Opterecenje pod kojim ga testiram je 100 SMS/sec. Za glavne objekte koristim staticko alociranje memorije. Ali prilikom prijema poruke formira se dosta pomocnh objekata, kao sto je niz byte-a i slicno.
Je li ovo znaci da je on izgubio memoriju?
[ jablan @ 08.10.2007. 15:07 ] @
Probaj periodično da pozivaš eksplicitno čišćenje GC-a... Imaš li predstavu koliko imaš referenciranih objekata u jednom trenutku?
[ AlisaBH @ 08.10.2007. 15:26 ] @
Pa ne znam bas, ali je sigurno oko 100 u jednoj sekundi.
[ jablan @ 08.10.2007. 15:58 ] @
Da, u sekundi, ali šta posle radiš sa tim objektima? Kakvu situaciju imaš posle 100, 1000, 10000 sekundi? Šta radiš sa porukom pošto je obradiš?

Nađoh interesantan tekst o GC-u u Mono-u, ako imaš vremena i znanja, možeš da ga pročitaš...

http://www.mono-project.com/Compacting_GC

[Ovu poruku je menjao jablan dana 08.10.2007. u 17:09 GMT+1]