Achieving a target performance can become a big challenge for an application. In general, once the application coding is done and desired functionality is achieved, the performance aspect, i.e. performance numbers come into the picture. At that point, the need for application tuning arises.
There are lots of well-known techniques known for tuning Java applications such as tuning the GC and starting your application with the correct and appropriate JVM setting, analysis, and optimization of application codebase. However, finding the suitable technique for the application is not easy. Diagnosis of an application bottleneck requires different approaches. In complex or multi-tier applications, a proper attack strategy needs to be developed to identify performance bottlenecks. For example, tuning JDBC configuration sometimes improves performance, but in order to identify a JDBC bottleneck, we need to use the correct analysis approach.
In this Knowledge Sharing article, Manzar Chaudhary, Narendra Sharma, and Mudit Verma list and explain various techniques used in the course of application tuning and identify the factors which can help in selecting a suitable performance tuning technique for an application. Further, they categorize all the tuning techniques based on different classification parameters and characteristics. Different classification parameters are used in this article, including:
• Nature of technique – Tuning Techniques can be grouped into categories – Low Level and High Level. Code Level optimization, design analysis, etc. can be classified as Low Level as it involves delving into finer and intrinsic details of the application. Meanwhile, High Level techniques include GC tuning, JVM parameter configuration, etc. High Level techniques are less invasive in nature.
• Complexity of technique –Can be High, Medium, or Low depending on ease of technique implementation.
• ROI of technique – This parameter assesses the benefits of technique i.e. how much performance can be increased by applying the techniques.
This article can serve as an easy reference for developers struggling with performance bottlenecks and are not sure which performance tuning technique can be applied in their application. It will help identify which application tuning technique is appropriate for your application, how to apply it effectively, and the benefits that accrue in the application after applying the technique.