SiteProctor Code
Brought to you by:
moxenb
File | Date | Author | Commit |
---|---|---|---|
examples | 2009-10-27 | moxenb | [r12] 0.9.2 - Fixed up Soap extension, added example ... |
src | 2009-10-27 | moxenb | [r12] 0.9.2 - Fixed up Soap extension, added example ... |
tests | 2009-10-15 | moxenb | [r10] Added SOAP extension to track the times of indi... |
SiteProctor_mono.sln | 2009-10-27 | moxenb | [r12] 0.9.2 - Fixed up Soap extension, added example ... |
SiteProctor_vs2008.sln | 2009-10-15 | moxenb | [r10] Added SOAP extension to track the times of indi... |
license.txt | 2009-10-07 | moxenb | [r8] Updated license info |
readme.txt | 2009-09-13 | moxenb | [r5] Added readme.txt, fixed sorting link bug |
SiteProctor is an ASP.NET library which tracks the amount of time resources take to render. This can be useful when trying to pinpoint which pages or other resources are slower than others. The time recorded is the time as seen by an HttpModule, which should encompass the majority of ASP.NET code used to render the page. Steps farther up in the .NET pipeline won't be recorded, nor will any processing or queueing performed by IIS/Apache. The average time is based on the last 32 samples. Locks are done in an efficient way which should not impact performance of the time. Results are displayed through an HttpHandler which generates a summary. URLs are grouped by the base URL (no query string is included). Hit count and average load time are displayed. Click on the URL to get a breakdown of times for each query string version of the page. Caveat: This is still alpha, so there is NO cleanup of old entries. All unique URLs are retained forever. Thus, if your site generates URLs which are unique to a user or unique to an action (e.g., user-specific database keys in the URL) you will get into a world of unhappiness quickly with a public-facing site. Setup should be simple-- just add the HttpHandler and HttpModule. <configuration> <system.web> <httpHandlers> <add verb="GET" path="__proctor.aspx" type="Open.Diagnostics.Web.ProctorHandler, Open.Diagnostics.Web.Proctor" /> </httpHandlers> <httpModules> <add name="Proctor" type="Open.Diagnostics.Web.ProctorModule, Open.Diagnostics.Web.Proctor" /> </httpModules> That's it-- once the site is up, you can hit /__prolix.aspx to get a summary of page load times.