So, I’ve heard a lot of hype about the upcoming 1.2.6 release of Mono being faster, leaner, and more stable then ever before (due largely to Novell’s acquisition of a QA team dedicated to Mono). Beagle has always gotten flack over memory use, and as a result, we are relentless in our hunt for abused memory. And while it is wonderfully satisfying to reduce memory usage, its really hard to beat dropping megabytes of resident memory for free :). I’m running Ubuntu Gutsy and its 1.2.4 release of Mono, but in my quest for some real numbers to back up all this talk I built the current SVN trunk of Mono.
Even my most optimistic expectations put our potential benefit around maybe 2 or 3 MB resident less than beagle running under Mono 1.2.4. On my test setup, Beagle 0.3pre consumed (after my recent Opera backend fix) around 110 MB of VM and 36 MB of RSS (averaged over a 2 hour run).After building and installing Mono 1.2.6, the same 2 hour run was averaging 72 MB of VM and 27 MB of RSS! Its still far from perfect, but free memory reduction is just plain cool :).
Some observations about the general pattern of allocation and collection under 1.2.6, it ‘idles’ much lower than 1.2.4. While some actions always push the memory usage up, 1.2.6 *appeared* to return to its lower memory point much faster, and more regularly.
Anyways, I just wanted to say, props to everyone on the Mono team for rocking my socks.
I definitely want to try out this whole “.NET on Linux” thing. Open source .NET what whaaat? haha. It’s always nice when any kind of application is able to drop its memory usage… I definitely need to get on that for DesktopLMS… stupid memory hog. Haha.
-ryan.
I hope the next versions will be better cause actuals are really memory eaters !
Is this taking into account common shared libraries?
The following post for information about determining real memory usage under Linux:
http://virtualthreads.blogspot.com/2006/02/understanding-memory-usage-on-linux.html
How many MBs of that memory are actually for shared libraries that were already running before mono started? How many are for mono libraries? How many are for the current processes data and beagle’s application & libraries? It’s very hard to say how much memory an application really uses under Linux, due to shared libraries. If you’re only running one GTK application on your system and it has 20MB resident, it’s safe to say that most of that 20MB does indeed go towards gtk and the application. If you’re running 20 GTK applications, you could pretty much write off the memory usage for the GTK code as irrelevant.
I ran a simple c# daemon application under mono/Linux and .net/Win. And after 24 hours of use, .net take about 333 Mo and mono more than 1 Go !
@bob - I would greatly appreciate you posting the code to this daemon?