Performance Results for ThreadingModel=“Free”
This section captures the performance results when the ThreadingModel of CLSID_Details is ThreadingModel="Free". To make the discussion easier, concentrate on the VoidCall column in each table.
A key point to note for Table B-7: for in-process method invocations, the client and the server exist in different apartments. This implies that marshaling will take place.
Here is a key point to note for Table B-8 and Table B-9: for in-process method invocations, the client and the server share the same apartment, implying that method invocations will be direct method calls.
Table B-7. Client Apartment: STA (Secondary STA Thread)
FirstCall | VoidCall | ArrayCall | LongCall | |
|---|---|---|---|---|
In-process | 0.000119 | 0.000108 | 0.000113 | 0.000924 |
Local | 0.000866 | 0.000463 | 0.000268 | 0.001908 |
Remote | 0.039941 | 0.001799 | 0.001965 | 0.017295 |
Table B-8. Client Apartment: MTA (MTAThread1)
FirstCall | VoidCall | ArrayCall | LongCall | |
|---|---|---|---|---|
In-process | 0.000005 | 0.000005 | 0.000005 | 0.000006 |
Local | 0.000609 | 0.000090 | 0.000097 | 0.000742 |
Remote | 0.037247 | 0.001719 | 0.001882 | 0.016600 |
Table B-9. Client Apartment: MTA (MTAThread2)
FirstCall | VoidCall | ArrayCall | LongCall | |
|---|---|---|---|---|
In-process | 0.000005 | 0.000004 | 0.000005 | 0.000006 |
Local | 0.000841 | 0.000094 | 0.000100 | 0.000748 |
Remote | 0.037925 | 0.001698 | 0.001895 | 0.016808 |