[Mono-bugs] [Bug 65408][Wis] Changed - MBRO call performance

bugzilla-daemon@bugzilla.ximian.com bugzilla-daemon@bugzilla.ximian.com
Mon, 6 Sep 2004 22:33:03 -0400 (EDT)


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 bmaurer@users.sf.net.

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

--- shadow/65408	2004-09-06 19:01:54.000000000 -0400
+++ shadow/65408.tmp.15926	2004-09-06 22:33:03.000000000 -0400
@@ -1,14 +1,14 @@
 Bug#: 65408
 Product: Mono: Runtime
 Version: unspecified
-OS: 
+OS: unknown
 OS Details: 
 Status: NEW   
 Resolution: 
-Severity: 
+Severity: Unknown
 Priority: Wishlist
 Component: misc
 AssignedTo: mono-bugs@ximian.com                            
 ReportedBy: bmaurer@users.sf.net               
 QAContact: mono-bugs@ximian.com
 TargetMilestone: ---
@@ -38,6 +38,28 @@
 }
 
 On my 900 mhz windows box using the 1.1 fx, this executes in 7 seconds. On
 the 2.0 fx, it executes in under a second. I had to control C the program
 with mono because it took so long. When I tried on x86-mono (a 2.8 GHz
 xeon) it took 13 seconds. Alot of these types of calls are used in xsp
+
+------- Additional Comments From bmaurer@users.sf.net  2004-09-06 22:33 -------
+Ok, so here is my idea for this:
+
+If we have proxy that is just a CrossAppDomain (eg, in process) thing,
+we fill up the vtable with a new type of marshal wrapper. The wrapper
+does something like this:
+
+set_domain (mbro->vtable->domain)
+set_context (...)
+[other transition stuff]
+
+[code for marshaling arguments]
+invoke
+set_domain (old domain)
+set_context (old context)
+
+This would make the process very cheap. For methods with arguments
+that are all `blittable' across domains (eg, they do not need to be
+marshaled), the remoting boundry is essentially free. If marshalling
+is needed, it is still orders of magnitude less expensive than what we
+have today.