[Mono-bugs] [Bug 77165][Wis] New - Different performance of MONO GC
bugzilla-daemon at bugzilla.ximian.com
bugzilla-daemon at bugzilla.ximian.com
Thu Jan 5 15:20:50 EST 2006
Please do not reply to this email- if you want to comment on the bug, go to the
URL shown below and enter your comments there.
Changed by vindec1978 at libero.it.
http://bugzilla.ximian.com/show_bug.cgi?id=77165
--- shadow/77165 2006-01-05 15:20:50.000000000 -0500
+++ shadow/77165.tmp.26487 2006-01-05 15:20:50.000000000 -0500
@@ -0,0 +1,80 @@
+Bug#: 77165
+Product: Mono: Runtime
+Version: 1.1
+OS:
+OS Details:
+Status: NEW
+Resolution:
+Severity:
+Priority: Wishlist
+Component: GC
+AssignedTo: lupus at ximian.com
+ReportedBy: vindec1978 at libero.it
+QAContact: mono-bugs at ximian.com
+TargetMilestone: ---
+URL:
+Cc:
+Summary: Different performance of MONO GC
+
+Hi all, I am doing my master thesis on Mono and its performance with
+respect to .Net.
+For this reason, I am performing several tests which include running
+code compiled with both .Net and Mono (vesion 1.1.12.1) using either
+the .Net or the Mono virtual machines.
+Among the features of Mono I am testing there is the it garbage
+collector works.
+To this end, I wrote a simple test (whose code follows) that is giving
+me some (apparently) strange results. The test works by repeatedly
+allocating, using and deallocating big chunks of memory as array of
+ints.
+
+If I run this test under Linux I get an OutOfMemory exception after
+approximately 400 seconds. If I run the same test under the same
+version of Mono but on Windows, it correctly terminates after about
+435 seconds. Finally, if I run the test under .Net, it takes about
+2500 seconds to end. As far as I have seen, it seems that the garbage
+collector under Linux version of Mono is not working at all, is it
+possible? Have you got any clues to explain also why the .Net
+execution if so much slower (approximately 6 times) than the Mono
+version? I already tried to explicitly call the garbage collector
+using the GC.Collect() function, but I didn't get any substantial
+difference.
+
+I also try to run the same code but replacing the array with ArrayList
+and in this case I have recived a fatal error if run the test on windows
+and a "killed" write on terminal if I run the test on Linux.
+Thanks in advance for you help!
+
+
+using System;
+
+
+class MainClass
+{
+ public static void Main(string[] args)
+ {
+ DateTime startTime;
+ DateTime stopTime;
+ TimeSpan elapsedTime;
+ long elapsedMilliseconds;
+
+ const int temp = 600;
+ const int numpersecond=30000000;
+
+ startTime = DateTime.Now;
+ for(int tmp = 0 ; tmp<temp ; tmp++){
+ int [] array = new int[numpersecond];
+ for(int i = 1;i<=numpersecond;i++){
+ array[i-1] = tmp+i;
+ }
+ }
+ stopTime = DateTime.Now;
+ elapsedTime = stopTime.Subtract(startTime);
+ elapsedMilliseconds =
+
+(int)elapsedTime.TotalMilliseconds;
+ Console.WriteLine("First allocation milliseconds :
+
+"+elapsedMilliseconds);
+ }
+}
More information about the mono-bugs
mailing list