Checklist: Remoting Performance
Retired Content |
---|
This content is outdated and is no longer being maintained. It is provided as a courtesy for individuals who are still using these technologies. This page may contain URLs that were valid when originally published, but now link to sites or pages that no longer exist. |
Improving .NET Application Performance and Scalability
J.D. Meier, Srinath Vasireddy, Ashish Babbar, and Alex Mackman
Microsoft Corporation
May 2004
Related Links
Home Page for Improving .NET Application Performance and Scalability
Send feedback to Scale@microsoft.com
How to Use This Checklist
This checklist is a companion to Chapter 11, "Improving Remoting Performance"
Design Considerations
Check | Description |
---|---|
Use .NET remoting for communicating between application domains in the same process. | |
Choose the right host. | |
Choose the right activation model. | |
Choose the right channel. | |
Choose the right formatter. | |
Choose between synchronous or asynchronous communication. | |
Minimize round trips and avoid chatty interfaces. | |
Avoid holding state in memory. |
Activation
Check | Description |
---|---|
Use client-activated objects (CAO) only where you need to control the lifetime. | |
Use SingleCall server activated objects (SAO) for improved scalability. | |
Use singleton where you need to access a synchronized resource. | |
Use singleton where you need to control lifetime of server objects. | |
Use appropriate state management to scale the solution. |
Lifetime Considerations
Check | Description |
---|---|
Tune default timeouts based on need. |
Hosts
Check | Description |
---|---|
Use Internet Information Services (IIS) to authenticate calls. | |
Turn off HTTP keep alives when using IIS. | |
Host in IIS if you need to load balance using network load balancing (NLB). |
Channels
Check | Description |
---|---|
Use TcpChannel for optimum performance. | |
Use the TcpChannel in trusted server scenarios. |
Formatters
Check | Description |
---|---|
Use the BinaryFormatter for optimized performance. | |
Consider Web services before using the SoapFormatter. |
Marshal by Reference and Marshal by Value
Check | Description |
---|---|
Use MBR (marshal by reference) when the object state should stay in the host application domain. | |
Use MBR when you need to update data frequently on the server. | |
Use MBR when the size of the object is prohibitively large. | |
Use MBV (marshal by value) when you need to pass object state to the target application domain. | |
Use MBV when you do not need to update data on the server. | |
Use small MBV objects when you need to update data frequently on the server. |
Serialization and Marshaling
Check | Description |
---|---|
Consider using a data facade. | |
Marshal data efficiently and prefer primitive types. | |
Reduce serialized data by using NonSerialized. | |
Prefer the BinaryFormatter. |
Retired Content |
---|
This content is outdated and is no longer being maintained. It is provided as a courtesy for individuals who are still using these technologies. This page may contain URLs that were valid when originally published, but now link to sites or pages that no longer exist. |