[Mono-bugs] [Bug 81663][Wis] Changed - Performance: Delegate optimization, DLR and IronPython
bugzilla-daemon at bugzilla.ximian.com
bugzilla-daemon at bugzilla.ximian.com
Thu May 24 13:55:44 EDT 2007
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 lupus at ximian.com.
http://bugzilla.ximian.com/show_bug.cgi?id=81663
--- shadow/81663 2007-05-24 09:03:33.000000000 -0400
+++ shadow/81663.tmp.6129 2007-05-24 13:55:44.000000000 -0400
@@ -153,6 +153,24 @@
according to the target and prev fields in the delegate.
------- Additional Comments From vargaz at gmail.com 2007-05-24 09:03 -------
The original Invoke call was virtual so the patch adds no overhead in
theory.
+
+------- Additional Comments From lupus at ximian.com 2007-05-24 13:55 -------
+The code before was doing:
+ static call to delegate_invoke
+ -> indirect call to method
+
+The patch does:
+ indirect call to delegate invoke_impl
+ -> indirect call to method
+
+My proposal instead would end up with:
+ indirect call to delegate invoke_impl
+ -> indirect jump (no need for prolog/epilog and argument reload)
+
+So it's no surprise that the patch causes a slowdown, because what
+saves time is the removal of the prolog/epilog and of the argument
+reload code.
+
More information about the mono-bugs
mailing list