Performance Results for ThreadingModel=“Apartment”
This section captures the performance results when the ThreadingModel
of CLSID_Details
is ThreadingModel="Apartment"
. To make the discussion easier, concentrate on the VoidCall
column in each table. In Table B-4, note the following:
For in-process method invocations, the client and the server share the same apartment. This implies that method calls are made directly, without marshaling.
From the data shown in Table B-4, a direct method call is about 170 times more efficient than a local out-of-process method invocation. It is about 1800 times more efficient than a remote out-of-process method invocation.
For Table B-5 and Table B-6, note the following:
The client apartment is different from the server apartment. This implies that marshaling will result.
For all in-process method invocations, the client apartment marshals interface pointers between itself and a different apartment, a different STA.
In-process and local out-of-process method invocations are essentially equivalent, when the client and server exist in different apartments.
Table B-4. Client Apartment: STA (Secondary STA Thread)
FirstCall | VoidCall | ArrayCall | LongCall | |
---|---|---|---|---|
In-process | 0.000005 | 0.000006 | 0.000005 | 0.000007 |
Local | 0.000812 | 0.000172 | 0.000183 | 0.001776 |
Remote | 0.039747 | 0.001798 | 0.002399 | 0.017383 |
Table B-5. Client Apartment: MTA (MTAThread1)
FirstCall | VoidCall | ArrayCall | LongCall | |
---|---|---|---|---|
In-process | 0.000103 | 0.000094 | 0.000103 | 0.000808 |
Local | 0.000612 | 0.000091 | 0.000099 | 0.000795 |
Remote | 0.037605 | 0.001695 | 0.001885 | 0.016981 |
Table B-6. Client ...
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.