Tips to improve the performance of ASP.Net Application
1. Disable the Debug Mode or Set Debug ="false"
How it affect performance: By default this attribute is "true" when you create new application and is useful when you are developing the application. Debug = true means that pdb information to be inserted into file and this results a larger file size and it's performance issue. Before deployment you should set the following tag
<compilation defaultLanguage="C#" debug="false">
2. Set trace enabled="false"
How it affects performance: With help of tracing, we can track the application's and the sequences. Enabling tracing adds performance overhead and might expose private information, so it should be enabled only while an application is being actively analyzed. You can turn off tracing using
<Trace enabled="false" - - - - -/>
3. While developing using Visual Studio.NET
When you set Configurations Option as "debug" mode, it creates pdb file to store the debug information hence before deploying the application set it to the "Release" mode.
You can set using
Select Menu Build -> Configuration Manager -- > Set the configuration option of project to the "Release" mode.
4. Disable the viewstate:
With the help of automatic state management feature, the server control is re-populate their values without writing any code. And it affects the performance. The always set EnableViewState = false when not requires.
For control
<asp: datagrid EnableViewState="false" datasource="..." runat="server"/>
For Page
<%@ Page EnableViewState="false" %>
5. Use Caching to improve the performance of your application.
OutputCaching enables your page to be cached for specific duration and can be made invalid based on various parameters that can be specified. The Cache exists for the duration you specify and until that time, the requests do not go to the server and are served from the Cache.
Do not assign cached items a short expiration. Items that expire quickly cause unnecessary turnover in the cache and frequently cause more work for cleanup code and the garbage collector. In case you have static as well as dynamic sections of your page, try to use Partial Caching (Fragment Caching) by breaking up your page into user controls and specify Caching for only those Controls which are more-or-less static.
6. Use appropriate Authentication Mechanism.
Following are the Authentication Modes.
- None
- Windows
- Forms
- Passport
7. Validate all Input received from the Users.
Validate all Input received from the users at client side to avoid the server round trip.
8. Use Finally Method to kill resources.
Always use the finally block to kill resources like closing database connection, closing files etc.
9. Always use the String builder to concatenate string
The memory representation of string is an array of characters, So on re-assigning the new array of Char is formed & the start address is changed. Thus keeping the old string in memory for garbage collector to be disposed. Hence application is slow down. Always use the string builder for concatenating string.
10. Enable the web gardening for multiprocessors computers:
The ASP.NET process model helps enable scalability on multiprocessor machines by distributing the work to several processes, one for each CPU, each with processor affinity set to its CPU. The technique is called Web gardening, and can dramatically improve the performance of some applications
11. Set Enlist="false" in connection string:
True indicates that the SQL Server connection Pooler automatically enlists the connection in the creation thread's current transaction context. That's why set enlist = false in connection string.
12. Avoid recursive functions / nested loops
13. Always set option strict to "on"
14. Try to avoid Throwing Exceptions.