Nicholas Allen's Indigo Blog

Windows Communication Foundation From the Inside

Browse by Tags

Tagged Content List
  • Blog Post: Changes to Default Throttle Settings

    I buried this in a previous update on changes in .Net 4 but here’s a more prominent description of how service throttles have changed. The ServiceThrottlingBehavior allows you to configure three settings that limit the resource consumption of a service. MaxConcurrentInstances limits the total number...
  • Blog Post: Warming a Cold Pool

    The thread pool for asynchronous IO threads attempts to automatically regulate the number of idle threads to balance the resource consumption of threads with the responsiveness of servicing tasks. When there is not much work to be done, idle threads are spun down. When a surge of work comes in, new threads...
  • Blog Post: Debugging References with Graph Visualizations

    Chris Lovett has a nice video demonstrating how to debug managed memory leaks by visualizing the runtime object reference graph produced by the gcroot debugger command. The graph visualization may help you spot cycles or other unexpected references that are causing the memory leak faster than reading...
  • Blog Post: Fix for Gradual Debugger Slowdown

    Visual Studio 2008 added a feature to automatically attach to a service in your solution when the code you're debugging makes a request to that service. By automatically attaching to the service you're able to stop on breakpoints in the service code without having to explicitly step into the other project...
  • Blog Post: Fix for Slow IO Thread Startup

    The CLR team has recently released a fix for slow startup of asynchronous IO threads that may affect WCF users. After startup, asynchronous IO threads are created at a slow pace to avoid spikes in the number of threads. Having extra idle threads consume system resources needlessly. Having too few available...
  • Blog Post: What’s New in WCF 4: Performance

    This list is a bit different in places from what you’ve seen in the beta 1 release and there’s always a chance that things might change again. The second part of the list covers some of the new features and changes to existing features to improve service performance. These performance features are...
  • Blog Post: Using TCP Analyzer to Debug TCP Performance

    Microsoft Research has a Network Monitor 3.3 plugin called TCP Analyzer that helps identify performance problems from a captured TCP session. TCP Analyzer takes a Network Monitor trace and performs visualization and analysis of the TCP connection. The analysis tries to identify what factor is most limiting...
  • Blog Post: Tuning ConnectionBufferSize

    Poor network utilization for large TCP data transfers is often a symptom of an overly small ConnectionBufferSize . The ConnectionBufferSize is the size of the send and receive buffers used by the connection oriented transports, and in particular the TCP transport where the default size is 8 KB. If...
  • Blog Post: CLR Beta 1 Survey

    The CLR team has a survey for .Net 4.0 Beta 1 covering different aspects of performance, hosting, security, and application compatibility. If you’ve built new applications using beta 1 or you’ve tried recompiling or running older applications using beta 1 then you might have some useful feedback about...
  • Blog Post: WCF Load Test Tool 3.0 Beta

    Rob Jarratt has updated the community-driven WCF load test tool with a new beta release. The test tool uses a trace captured from a previous run of a WCF service to automatically generate a test case that performs the same sequence of operations. This allows you to quickly turn a hand-crafted test into...
  • Blog Post: Inside Changes to the CLR 4.0 Thread Pool

    WCF naturally produces applications that are both heavily multi-threaded and IO intensive. That makes WCF application performance distinctly influenced at times by the characteristics of the CLR thread pool. The thread pool is a collection of work and a collection of worker threads that it seeks to pair...
  • Blog Post: .Net Performance Survey

    The CLR performance team is running a survey to get your feedback about what to focus on for performance in the .Net framework. This includes performance in the framework itself as well as performance profiling, optimization, and tuning for the applications that you write. If you have any WCF performance...
  • Blog Post: Tripping over Missing Servers

    A common complaint is that the first call on a client object takes some disproportionately large amount of time, usually ten seconds or more, while successive calls are instantaneous. There are many reasons why this might happen so there's no generic resolution for this problem. Sometimes it is caused...
  • Blog Post: WCF Tips and Tricks

    Christian Weyer has a recent set of presentation slides covering tips and tricks for performance and configuration of WCF applications. I don't think there's a live recording available but the presentation is done in a question and answer format that makes following along with just the slides relatively...
  • Blog Post: Duration Rounded Down

    When I look at the performance counters in my service for the execution time of an operation, the value is always zero. Why? There's a variety of reasons I can think of for why call data may not be collected and all are relatively easy to check. First, you need to have performance counters enabled...
  • Blog Post: Memory Impact of Quotas

    Will setting the receive quotas to large values cause my service to run out of memory? It depends on the messages that people send you. Assigning large values to quotas does not cause WCF to immediately allocate the amount of memory that you specify as the quota value. Therefore, you can change...
  • Blog Post: Improving Hosted HTTP Request Scaling

    A few months ago Wenlong Dong announced an improvement to HTTP request scalability when WCF is hosted in IIS. In order to take advantage of the improvement you need the combination of IIS7 or later and Orcas SP1 installed. Since this isn't the ubiquitous configuration yet, you need to follow the instructions...
  • Blog Post: One Week Countdown

    The last week has been a hard push to get everything ready for PDC. Yesterday I checked in the final changes I had to the slides and hope to spend quite a lot of time this week not thinking about the talk at all. This is probably the quickest I've had a talk come together and solidify. There were only...
  • Blog Post: Proxy Caching Changes

    I don't think I ever wrote about the changes made to WCF generated typed proxies in Orcas, although Wenlong had an article about the changes to proxy behavior back when they were made. Generated proxies are the ones produced from the standalone client classes that are generated by tools such as svcutil...
  • Blog Post: Scaling a Talk

    As I mentioned a few days ago, we were tweaking the published details of my talk a bit to better reflect the talk style and content . Here's the updated blurb if you haven't seen it. WCF: Zen of Performance and Scale by Nicholas Allen Join us for an interactive lunch discussion about different...
  • Blog Post: Zen of WCF Performance and Scale

    While I wait for the title and abstract of my PDC talk to be updated with the correct content, here is what you can expect. The theme of the talk is obtaining performance and scale from distributed systems built using WCF. The style of the talk is Zen. At the end of the talk you will understand...
  • Blog Post: Using ETW Tracing

    Whenever I've talked about tracing I've always used the System.Diagnostics trace listeners in the example. However, there's a second tracing system that is much more powerful but much less talked about called ETW (Event Tracing for Windows). ETW is much less talked about because of the way it combines...
  • Blog Post: Getting Better Time Formats

    Orcas introduced a new DateTimeOffset class that is easier to use for representing absolute times than the original DateTime class. However, if you run svcutil on a contract that contains a DateTimeOffset, you'll get an ugly generated structure because DateTimeOffset isn’t recognized as a natively supported...
  • Blog Post: Composing Compression and Encryption

    Encryption is counterproductive for compression if the two features aren't used together correctly. Generally, you want to compress first and then encrypt. This is the order that naturally happens when you compress at the encoding level and encrypt at the transport level. You tend to get disadvantageous...
  • Blog Post: JSON Service Speed

    I've been playing with the DataContractJsonSerializer that comes with Orcas recently to produce some JSON-based services. DataContractJsonSerializer works just like any other XmlObjectSerializer, except of course that the serialization output looks nothing like XML when written out. {"content1":"this...
Page 1 of 2 (34 items) 12