Common Performance issue checklist for Asp.net and Web API's - International Days

International Days

Internationally important Days

Breaking

Home Top Ad

Post Top Ad

Friday, 13 October 2017

Common Performance issue checklist for Asp.net and Web API's

· Indexing – 
Issue: In most cases, Indexes are not set from the beginning of the projects. Non-clustered indexes are rarely maintained.
Solution: Try to use Indexes from the beginning of the project. Make decisions regarding Indexes very carefully after analyzing the use cases.

· Use of common stored procedures – 
Issue: Use of common stored procedures has an adverse impact on the performance.
Solution: Avoid the use of common stored procedures for multiple functionalities. Often it is noticed that the use of common stored procedures makes it difficult to optimize the performance without affecting the functionality.

· Fetching data from multiple tables in RDBMS – 
Issue: A database query tends to become slower if it has to fetch data from multiple tables, especially when the number of records is high.
Solution: Consider using NoSQL or caching mechanisms. For example - MongoDB, CouchDB, Redis, Memcached, etc.

· Unnecessary  API calls – 
Issue: Unnecessary API calls from the client-side affects the performance of the application.
Solution: Analyze each and every API call, and make sure it is implemented in the most optimum way. Avoid unnecessary round trips.

· Request / Response content length. Low performance of APIs – 
Issue: If Web service request / response content length is more than 1500, it results in low performance.
Solution: 
1. Avoid sending data that is not required for the current action.
2. Select the fastest JsonSerializer, as serialization can affect the overall performance of the API.
3. Try to implement compression. For example, GZIP, Deflate, etc.
4. For APIs that require high performance, try to avoid the use of ORMs. ORMs are slower.
5. Implement APIs as asynchronous methods. This will increase the number of concurrent requests that can be handled.
6. Use caching if possible.

· Pagination missing – 
Issue: Paging is not implemented correctly. As a result, unnecessary data is sent to the client-side.
Solution: Make sure that paging is implemented. Send only the required number of records to the client-side.

· File upload – 
Issue: Most of the applications have performance issues with file upload.
Solution: It is better to avoid Content-Type : application/x-www-form-urlencoded as it is inefficient for sending large quantities of binary data or text containing non-ASCII characters. Use Content-Type : multipart/form-data instead. We can also consider using Chunked file upload or file upload using FTP clients.

· Usage of Entity Framework 
Issue: Applications using Entity Framework are very low in performance.
Solution: Read the best practices guidelines before using entity framework. Write the queries in the most optimum way and always consult with the database engineer regarding performance.

· Usage of third party fonts, JavaScripts and slow loading time for web pages 
Issue: Usage of third party fonts and JavaScripts make the web pages slower.
Solution: 
1. Use third party fonts only if required. 
2. Consider minifying / bundling JS and CSS files.
3. Try to use compressed images that do not affect quality.
4. If possible, load the static web contents (JS/CSS/Static Images/etc.) from CDN (Content Delivery Network).
5. Use https://developers.google.com/speed/pagespeed/insights/ to get web page speed insights.

· Hosting of Web application and  Database 
Issue: Hosting of Web application and Database in the same server results in low performance.
Solution: Try to host the Web application, Database and Static contents in different servers.

· Deadlock issue 
Issue: Deadlock issues are very common in our applications.
Solution: Be very cautious in using locks and holding a process for another process.

No comments:

Post a Comment

Post Bottom Ad

Pages