Performance Results for ThreadingModel=“Both”
This section captures the performance results when the ThreadingModel
of CLSID_Details
is ThreadingModel="Both"
. To make the discussion easier, concentrate on the VoidCall
column in each table.
Note that for all in-process method invocations, the client and the server share the same apartment, because in-process COM classes that support ThreadingModel="Both"
can be loaded into any client apartment (STA or MTA). Method invocations are direct. Thus, if you were to put a COM object within in-process servers, try to support TheadingModel="Both"
. If you don’t do this, you might as well build an out-of-process server instead, because an out-of-process server is much more fault-tolerant than an in-process one.
Table B-10. Client Apartment: STA (Secondary STA Thread)
FirstCall | VoidCall | ArrayCall | LongCall | |
---|---|---|---|---|
In-process | 0.000005 | 0.000005 | 0.000005 | 0.000007 |
Local | 0.000909 | 0.000430 | 0.000410 | 0.001978 |
Remote | 0.844881 | 0.001794 | 0.001960 | 0.017808 |
Table B-11. Client Apartment: MTA (MTAThread1)
FirstCall | VoidCall | ArrayCall | LongCall | |
---|---|---|---|---|
In-process | 0.000005 | 0.000005 | 0.000005 | 0.000006 |
Local | 0.000617 | 0.000090 | 0.000098 | 0.000722 |
Remote | 0.045469 | 0.001706 | 0.001882 | 0.016604 |
Table B-12. Client Apartment: MTA (MTAThread2)
FirstCall | VoidCall | ArrayCall | LongCall | |
---|---|---|---|---|
In-process | 0.000005 | 0.000005 | 0.000005 | 0.000006 |
Local | 0.000761 | 0.000094 | 0.000100 | 0.000750 |
Remote | 0.038146 | 0.001692 | 0.001906 | 0.016598 |
Get Learning DCOM now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.