[Mono-bugs] [Bug 78957][Wis] Changed - Performance Loss

bugzilla-daemon at bugzilla.ximian.com bugzilla-daemon at bugzilla.ximian.com
Wed Aug 2 17:24:04 EDT 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 david_garcia at logitech.com.

http://bugzilla.ximian.com/show_bug.cgi?id=78957

--- shadow/78957	2006-08-02 15:02:16.000000000 -0400
+++ shadow/78957.tmp.1094	2006-08-02 17:24:04.000000000 -0400
@@ -44,6 +44,52 @@
 Additional Information:
 
 ------- Additional Comments From vargaz at gmail.com  2006-08-02 15:02 -------
 The mono GC is slower than the MS one, but not by that margin. So please
 attach some kind of test case.
 
+
+------- Additional Comments From david_garcia at logitech.com  2006-08-02 17:24 -------
+Load a log file apx 6 megs. [6722 rows by 162 columns]
+
+Parse it using the rules for CSV. [uncluding how to handle comma and 
+quotes]
+
+
+Use first row of CSV as column heading.
+
+Use remaining data as rows.
+
+Store data of each row in a DataSet. (very slow)
+
+I had to rework the design of the application to mimize use of MMS, 
+which increased the speed of the app by 12 times. But the memory 
+management system of mono is at least two times as slow on windows. 
+
+Additionally when i run a parse a file genereated by the appended 
+code, mono will raise a fatal error dialog stating  "Fatal Error in 
+GC" {"To many heap sections"}. .NET parses the file on my system in 8 
+seconds after the internal heap structures are optimized. This crash 
+results in a memory leak.
+
+You may be able to replicate it by first allocating 138 MB then 
+allocation 80000*200 strings each of length 10. If you test this you 
+may need a 512 MB to 1 GB of ram.
+
+  int c = 0;
+            for (c = 0; c < 200; c++)
+            {
+                s.Write("COL{0},", c);
+            }
+            s.Write("COL{0}\r\n", c);
+
+            for (int r = 0; r < 80000; r++)
+            {
+                for (c = 0; c < 200; c++)
+                {
+                    s.Write("Value{0},", c);
+                }
+                s.Write("Value{0}\r\n", c);
+
+            }
+
+


More information about the mono-bugs mailing list