[Mono-bugs] [Bug 79000][Nor] Changed - Memleak & Performance issue with deserialization of mulit-dimensional arrays
bugzilla-daemon at bugzilla.ximian.com
bugzilla-daemon at bugzilla.ximian.com
Fri Aug 11 09:59:47 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 joncham at gmail.com.
http://bugzilla.ximian.com/show_bug.cgi?id=79000
--- shadow/79000 2006-08-11 09:04:33.000000000 -0400
+++ shadow/79000.tmp.2629 2006-08-11 09:59:47.000000000 -0400
@@ -91,6 +91,20 @@
Looks like the problem is in the property Type.IsValueType when the
type is a multi-dimensional array. It is leaking memory and every call
is slower.
+
+------- Additional Comments From joncham at gmail.com 2006-08-11 09:59 -------
+I'm not quite sure of the proper fix, but I think I found the problem.
+
+It seems to be in mono_bounded_array_class_get. No mattter how many
+times it's called with the same paramters, the cache lookup (line
+3357) never succeeds.
+
+Note if (rank > 1) bounded is set to FALSE (line 3345). Then the
+comparison (line 3357) always compares class->byval_arg.type to
+MONO_TYPE_SZARRAY. Later if (rank > 1) we are setting the type of the
+created class to MONO_TYPE_ARRAY (line 3425). Thus, the next time we
+come in, the comparison fails and the class is created again. I'm
+guessing one of the ifs needs changed, but not sure which one.
More information about the mono-bugs
mailing list