Before you deploy your .NET web application you must make sure that it’s performing up to par on speed. Web applications written in .NET, in particular, have a huge problem with speed when there is a lot of functionality on a specific page. This is not due to any technical limit of the .NET product. It is due to the fact that .NET gives you the tremendous freedom of being able to build a page dynamically from the code-behind side. Many technologies give you the ability to build a page dynamically from the client side. .NET, however, is unique in the consideration of the server-side dynamic pages. With this glorious freedom many programmers, including yours truly, coming from the programming side, as opposed to the web development side, go wild on creating complicated, functionality-loaded sites that could prove to be slow. For this purpose, .NET also provides a tool for speeding up your site specifically from the code-behind side. In this article I will be talking about how to use Trace to figure out which piece of code is giving you a hard time with respect to speed.
- SitePoint: Speed Up Your Site! 8 ASP.NET Performance Tips
- Best Practices for Speeding Up Your Web Site
- Let’s make the web faster
- 15+ Tips to Speed Up Your Website, and Optimize Your Code!
- 6 Ways to Speed Up Your Site
- Speed Up Web Site Load Time
- 25 Ways to Speed Up your Website
- Use Google Page Speed Tool to Speed Up Your Site
The trace module will tell you how long pre-render, render, etc. take place on your page and in addition it will display the time between any two points you specify in your code. You can hone in on the problamatic function, line of code, or database call that is causing you the problem by including more and more trace points within your code. Let’s see how this works.
There are two parts to making Trace work for you. First, you need to enable it in your Web.config file. And then, on each page that you want to inspect with trace you will need to make sure that you enable trace.
<trace enabled=”true” pageOutput=”true” localOnly=”false”
Page.Trace.IsEnabled = true;
Page.Trace.TraceMode = TraceMode.SortByTime;
Page.Trace.Write(“Started Page Load”);
In the Web.config file you want to meake sure to set pageOutput to ‘true’ if you want the results of the trace to go straight onto the page you are attempting to trace. The trace results will then appear on the bottom of the page.
Even though your trace is enabled in the Web.config file, it might still be disabled on your individual pages by default. On any page that you want to include trace and custom trace messages, make sure that your trace is enabled and that you have the trace mode set to be sorted by time. It will be hard to see which parts of code are giving you trouble if you don’t see the respective times side by side.
For each page that you want to include custom messages, make sure you include using the System.Diagnostics namespace.
Here’s how your trace output would look
You can also make your trace’s output go to a specific file or xml instead of straight onto the page. I use the output to the page since it is the fastest. However, if your site is live and has lots of users, you might not want your viewers to see all the trace information on the bottom of the page. There is also much much more you can find out about your page with trace information. For more information on trace and on how to make your trace output go straight to a file, check out:
Tags: asp, c#, Debug, html, Trace