ASP.NET Internals – Managed runtime loader

Introduction There is a file called aspnet.config in the .Net framework installation. This file is used to specify startup flags for both ASP.NET and CLR for those settings that are needed very early in the worker process lifetime, when the config system is not yet present. In IIS 7.5 we added an attribute to the…


ASP.NET Internals – Prefetch and Multi-Core Jitting.

Introduction. A couple of new features are introduced in ASP.NET 4.5 to improve startup time of web apps. Both features use a flag on the web.config to enable them. The features don’t do any magic by themself. They just enable features available on the operating system underneath or in the CLR APIs. Prefetch feature The…


Performance Improvements for ASP.NET Shared Hosting Scenarios in .Net 4.5

Disclaimer: The article below discusses pre-release features and performance numbers. Some of these features could change on the RTM version. Also, the actual performance numbers could change from now until we ship. During .Net 4.5 development we tried to improve the performance of ASP.NET in shared hosting scenarios, where many web sites might share the…


CPU Throttling for ASP.NET Asynchronous Scenarios in .Net 4.5

Disclaimer: The article below discusses pre-release features. Some of these features could change on the RTM version. The scenario The sample scenario we considered here is the hypothetical page in which we need to aggregate the results of five remote feeds, in a second tier. Requesting the feeds has a latency, which we set to…


“ASP.NETRequests Queued” bug in IIS integrated Mode.

Introduction. There was a bug in ASP.Net 2.0 in which the “ASP.NET\Requests Queued” performance counter only reported values when a request was queued in the ASP.Net Queue. It didn’t count the requests that were waiting for the CLR thread pool. This was only in IIS7+ integrated mode and was different than the behavior in classic…


ASP.NET Internals – Performance counters implementation details

Introduction Many users seem to run into issues when using ASP.NET Performance counters. With that in mind, I decided to write this article to explain, in as much detail as possible, how the ASP.NET Performance counters were implemented. In the hope people will find this useful when dealing with such problems. This might be also…


ASP.NET Internals – Server controls fields and performance.

Introduction It’s not a secret that the less server controls you have in an ASP.NET web page the better the performance. The memory allocation of the objects is fast but processing will vary depending on many factors. Additionally, the garbage collector needs to expend time releasing the memory. Furthermore, server controls are processed recursively several…


ASP.NET Perfecto – Taking a quick peek at the performance of your ASP.NET app

Introduction Historically, using ETW is not very friendly. Existent tools are hard-to-use and the data generated is raw and mostly unprocessed. You can today generate ASP.NET traces using logman.exe and then use tracerpt.exe to generate a CSV file. This data is hard to look at it.  Another option is to use FREB to generate traces….