Click to Rate and Give Feedback
MSDN
MSDN Library
Performance
Checklists
 Checklist: Web Services Performance

  Switch on low bandwidth view
Prescriptive Architecture
Checklist: Web Services Performance
 

Patterns and Practices home

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

patterns & practices Library

How to Use This Checklist

This checklist is a companion to Chapter 10, "Improving Web Services Performance"

Design Considerations

CheckDescription
ms979173.checkbox(en-us,MSDN.10).gifDesign chunky interfaces to reduce round trips.
ms979173.checkbox(en-us,MSDN.10).gifPrefer message-based programming over remote procedure call (RPC) style.
ms979173.checkbox(en-us,MSDN.10).gifUse literal message encoding for parameter formatting.
ms979173.checkbox(en-us,MSDN.10).gifPrefer primitive types for Web service parameters.
ms979173.checkbox(en-us,MSDN.10).gifAvoid maintaining server state between calls.
ms979173.checkbox(en-us,MSDN.10).gifConsider input validation for costly Web methods.
ms979173.checkbox(en-us,MSDN.10).gifConsider your approach to caching.
ms979173.checkbox(en-us,MSDN.10).gifConsider approaches for bulk data transfer and attachments.
ms979173.checkbox(en-us,MSDN.10).gifAvoid calling local Web Services.

Connections

CheckDescription
ms979173.checkbox(en-us,MSDN.10).gifConfigure the maxconnection attribute.
ms979173.checkbox(en-us,MSDN.10).gifPrioritize and allocate connections across discrete Web services.
ms979173.checkbox(en-us,MSDN.10).gifUse a single identity for outbound calls.
ms979173.checkbox(en-us,MSDN.10).gifConsider UnsafeAuthenticatedConnectionSharing with Windows Integrated Authentication.
ms979173.checkbox(en-us,MSDN.10).gifUse PreAuthenticate with Basic authentication.

Threading

CheckDescription
ms979173.checkbox(en-us,MSDN.10).gifTune the thread pool using the formula for reducing contention.
ms979173.checkbox(en-us,MSDN.10).gifConsider minIoThreads and minWorkerThreads for intermittent burst load.

One Way (Fire and Forget) Communication

CheckDescription
ms979173.checkbox(en-us,MSDN.10).gifConsider using the OneWay attribute if you do not require a response.

Asynchronous Web Methods

CheckDescription
ms979173.checkbox(en-us,MSDN.10).gifUse asynchronous Web methods for I/O operations.
ms979173.checkbox(en-us,MSDN.10).gifDo not use asynchronous Web methods when you depend on worker threads.

Asynchronous Invocation

CheckDescription
ms979173.checkbox(en-us,MSDN.10).gifConsider calling Web services asynchronously when you have additional parallel work.
ms979173.checkbox(en-us,MSDN.10).gifUse asynchronous invocation to call multiple unrelated Web services.
ms979173.checkbox(en-us,MSDN.10).gifCall Web services asynchronously for UI responsiveness.

Timeouts

CheckDescription
ms979173.checkbox(en-us,MSDN.10).gifSet your proxy timeout appropriately.
ms979173.checkbox(en-us,MSDN.10).gifSet your ASP.NET timeout greater than your Web service timeout.
ms979173.checkbox(en-us,MSDN.10).gifAbort connections for ASP.NET pages that timeout before a Web services call completes.
ms979173.checkbox(en-us,MSDN.10).gifConsider the responseDeadlockInterval attribute.

WebMethods

CheckDescription
ms979173.checkbox(en-us,MSDN.10).gifPrefer primitive parameter types.
ms979173.checkbox(en-us,MSDN.10).gifConsider buffering.
ms979173.checkbox(en-us,MSDN.10).gifConsider caching responses.
ms979173.checkbox(en-us,MSDN.10).gifEnable session state only for Web methods that need it.

Serialization

CheckDescription
ms979173.checkbox(en-us,MSDN.10).gifReduce serialization with XmlIgnore.
ms979173.checkbox(en-us,MSDN.10).gifReduce round trips.
ms979173.checkbox(en-us,MSDN.10).gifConsider XML compression.

Caching

CheckDescription
ms979173.checkbox(en-us,MSDN.10).gifConsider output caching for less volatile data.
ms979173.checkbox(en-us,MSDN.10).gifConsider providing cache-related information to clients.
ms979173.checkbox(en-us,MSDN.10).gifConsider perimeter caching.

State Management

CheckDescription
ms979173.checkbox(en-us,MSDN.10).gifUse session state only where it is needed.
ms979173.checkbox(en-us,MSDN.10).gifAvoid server affinity.

Attachments

CheckDescription
ms979173.checkbox(en-us,MSDN.10).gifPrefer Base64 encoding. Direct Internet Message Encapsulation (DIME) is a supported part of Web Services Enhancements (WSE), but Microsoft® is not investing in this approach long-term. DIME is limited because the attachments are outside the SOAP envelope.

COM Interop

CheckDescription
ms979173.checkbox(en-us,MSDN.10).gifAvoid single-threaded apartment (STA) COM objects.

Patterns and Practices home

© 2009 Microsoft Corporation. All rights reserved. Terms of Use  |  Trademarks  |  Privacy Statement
Page view tracker