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 [EMAIL PROTECTED] http://bugzilla.ximian.com/show_bug.cgi?id=75444 --- shadow/75444 2005-07-03 13:28:23.000000000 -0400 +++ shadow/75444.tmp.17380 2005-07-03 16:03:51.000000000 -0400 @@ -250,6 +250,36 @@ ------- Additional Comments From [EMAIL PROTECTED] 2005-07-03 13:28 ------- The full benchmark is here (I failed to attach it to bugzilla): http://nemerle.org/~malekith/temp/benchmark.tar.gz It contains the generic and nongeneric version, so one can compare them. + +------- Additional Comments From [EMAIL PROTECTED] 2005-07-03 16:03 ------- +Ha, got it! Mono did always set has_finalize for generic types. + +This: + +Index: metadata/class.c +=================================================================== +--- metadata/class.c (revision 46875) ++++ metadata/class.c (working copy) +@@ -1982,7 +1982,7 @@ + /* Object::Finalize should have empty implemenatation */ + class->has_finalize = 0; + if (class->parent) { +- if (class->vtable [finalize_slot] != +default_finalize) ++ if (class->vtable [finalize_slot]->token != +default_finalize->token) + class->has_finalize = 1; + } + +fixes it, but I think that to be sure, we should also compare dynamic +modules, not only tokens, so this shouldn't go into main mono tree I +guess. + +Anyway the problem is that we have inflated Finalize copy. + +With this patch it takes only 10s for go2 to run, so it's now only 2x +slower than non-generic version. + _______________________________________________ mono-bugs maillist - [email protected] http://lists.ximian.com/mailman/listinfo/mono-bugs
