Everyone loves speed. Getting an application to respond within 3-4 seconds needs focused execution. Most of the teams start with the goal of performance tuning, without even knowing where they stand. Performance tuning has a set of pre-conditions; if those are not met, tuning is very difficult. Here are some simple steps, that can take you very close to solving performance problems.
![simple-and-practical-performance-tuning-approach](images/aug-2016-blog.jpg)
Monitor the current performance levels of your apps. First get APM product and start measuring your servers/OS, databases and app servers. If you do not know the consumption of these items, forget tuning.
Isolate the slow running queries. Database, especially with rapidly growing data, can start behaving bad on large volumes. Always be on top of the top 10 time consuming queries.
Isolate the slow page requests. UI rendering and data fetches can go rogue. Rather than blaming the page itself, identify that request that slows down the page.
Isolate the slow class/method. Do not blame the entire logic. Take the top 10 time consuming methods using an APM tool.
After isolating the DB, Page Request and the Method, take 2-3 per week. Do not over spread. Open the code, review closely and look for issues.
Analyze SQL queries thru query optimizer.
After 3-4 fixes, use a load testing tool to mimic the situation and monitor again. Ensure that you are able to attribute the improvement over small fix increments. If you fix 100 items, you cannot pin-pointedly say what fix caused the improvement.
Have all dev, QA and infra team members in a room - an all hands meet of the project members. Explain what was before, what got fixed and how the performance improved. This session is very important so that the team does not repeat the same mistakes.
Performance issues are harder to catch. Once found, ensure that it is not repeated again. Else you will burn more money and time, for those repeated errors.
Perform Faster.