[Mono-devel-list] Memory management for long running processes

Ben Maurer bmaurer at ximian.com
Mon Mar 28 16:12:28 EST 2005


On Mon, 2005-03-28 at 21:19 +0100, Alex Chudnovsky wrote:
> Memory leaking issue however does appear to be present as app leaked 
> memory so much that it locked up Linux box :-/
> 
> Your help would be much appreciated, you can get application here:
> 
> http://www.majestic12.co.uk/files/mj12node/mono/mj12node_mono_0987.tgz
> 
> Main executable is MJ12nodeMono.exe, once you run it you should see menu 
> and you will need to start webserver (press S) and then use your browser 
> to displayed webserver's address to configure a few parameters before 
> software starts working. You will need to go to Options screen and 
> register (only few details needed) and after you do this the node will 
> start working and it leaks memory on at least one Linux box. It 
> transpired that switching away from Mono.Data.SqliteClient to ADO.NET 
> from SourceForge helped plug leaks, however it was still leaking.

Can you try that desc-heap thing I described? Having somebody take an
initial look at that would really help me.

If Sqlite is leaking, you might want to file a bug, or see if it is your
own fault. 

> While we are on the subject I noticed that I was not able to determine 
> amount of memory used by my process from the process itself using the 
> following code that works fine on Windows but not on Linux:
> 
>         // returns memory used in MegaBytes
>         public static int GetMemoryUsage()
>         {
>             return 
> System.Diagnostics.Process.GetCurrentProcess().WorkingSet/(1024*1024);
>         }

Maybe it makes sense to use RSS for that. Do people have any thoughts?

(This would also be for S.Environment.WorkingSet, which is a much easier
way to get what you want).

-- Ben




More information about the Mono-devel-list mailing list