Contents tagged with performance

  • Configuring Performance Counters to Run Over Time

    Whether you’re looking to diagnose performance problems, or just to keep an eye on the health of a server you rely on, knowing how to configure performance counters so they run constantly in the background can be a huge help.  The first step in getting to performance counters is to run perfmon (just hit Start and type perfmon): Once you’re in Perfmon, you may have questions like: What should I monitor for an ASP.NET web site / application? How do I save a set of Performance Counters? which you can find answers to at the above links.  The point of this article is to demonstrate how to collect performance statistics over time.  The first step is to identify which counters … more

  • Speaking in Toledo Tonight

    I'll be presenting at the Northwest Ohio .NET User Group this evening at 6pm.  The talk will be a slightly modified version of my Black Belt ASP.NET Performance talk that I gave earlier this month at Tech Ed in Orlando.  According to their web site, the user group will also be giving away a Zune to one of the attendees of tonight's meeting (and I have a book and some shirts, too...), so if nothing else, you can come for the free stuff. The main topics covered in this talk are performance testing with load testing tools, caching, and asynchronous programming. more

  • Black Belt ASP.NET Performance Talk

    I gave my Tech Ed presentation, ASP.NET Black Belt Performance Techniques, yesterday afternoon.  The talk was well-attended, with about 300 372in the audience.  I gave the talk last month in Cleveland and it was very well-received.  I promised attendees the slides and demos would be available on Tech Ed's CommNet, and right now the slides are but I'm having trouble getting the demos uploaded so I'm also posting everything here: Download DemosDownload PPT I wasn't terribly happy with my performance with this talk, and the overall evaluation average for it was 7.84, which is pretty respectable (based on evaluations from 1 to 9 in a few categories) - the best talks at the show … more

  • Black Belt ASP.NET Performance Techniques

    Last night I presented at the Cleveland .NET SIG on Black Belt ASP.NET Performance Techniques, which is a talk I'll be giving in a few weeks at Tech:Ed Developers in Orlando.  I was asked a couple of weeks ago if I could give a talk in May and I decided to do it so I could practice for TechEd.  Since this is a new talk for me (though its material is familiar), I had to put together a new set of demos, and having this user group meeting was a good way to keep me from procrastinating until June to get my demos working.  The talk covers performance metrics, load testing, and some performance tips (and shows their relative impact on a realistic application using load … more

  • Speaking in Cleveland May 13th

    I'll be speaking at the Cleveland .NET SIG tomorrow night.  The topic is Black Belt Performance Tips for ASP.NET, which will be a dry run for a session by that same name I'll be giving next month at Tech:Ed Developers in Orlando.  Some of the primary areas covered will be advanced caching techniques and asynchronous programming techniques (for ASP.NET).  The user group meets at the Microsoft office in Independence, Ohio from 5:45pm to 7:30pm and usually is pretty crowded. more

  • Caching in ASP.NET Show on dnrTV

    I'm on dnrTV this week with a show about Caching in ASP.NET, one of my favorite topics.  I think the whole show is a bit under an hour and I go through a bunch of demos and show off some of the less-well-known features of caching, such as cache profiles, programmatic output cache invalidation, and the Substitution control that lets you have dynamic contents on a fully output-cached page.  I also cover SQL Cache Invalidation and Micro Caching, the demo that helped win me Speaker Idol at TechEd 2007.  It was fun to record and I hope you enjoy it. Thanks again, Carl, for inviting me on the show! more

  • Real World ASP.NET Performance Tuning Experience

    I'm in the midst of wrapping up a multi-year long project to replace the advertising engine used to host sponsored ads on a few dozen .NET web sites.  This system traces its "lineage" back to an old ASP application written in 2001 (it served its first 207 impressions on 31 March 2001), and has since been upgraded to ASP.NET 1.0 and 2.0 both as incremental ports, not full revisions (for instance, the database remained constant between these ports, and there was never any decent UI for managing the ads (basically direct table access).  Anyway, the system has grown and grown and now serves about 100M impressions per month, which if you do the math works out to an … more

  • ASP.NET Scalability Panel Recording Available

    I was honored to be asked to participate in a panel discussing ASP.NET Scalability at TechEd 2007 a couple of weeks ago.  The panel was moderated by Richard Campbell and Carl Franklin of DotNetRocks, and included Stephen Forte, Kent Alstad, Rob Howard, and myself. The recording of that discussion is now available here: ASP.NET Scalability Panel - TechEd 2007 more

  • Update Cache in Background Thread

    Peter Bromberg recently wrote an article on refreshing the ASP.NET cache, which referenced my ASP.NET Caching Best Practices article on MSDN.  In my original article, I lamented the general uselessness of the CacheItemRemovedCallback feature, and wished for a CachedItemExpiredButNotRemovedCallback.  Sadly, this feature is still lacking despite the release of .NET 2.0 and 3.0 since my article was published in 2003. Peter's approach is a simple and effective one, and works well for a limited number of operations.  The one issue he doesn't address is that his background thread is permanently using one of the application's threads from its thread pool.  This is not a … more

  • Optimize ASP.NET HTTP Connection Limit

    Mads has a nice post on optimizing ASP.NET to utilize more than its default of 2 concurrent web connections.  Here’s the relevant config info: <system.net>  <connectionManagement>     <add address="*" maxconnection="8"/>  </connectionManagement></system.net> [categories:performance] more