Once it has been identified that an application’s design and/or implementation is responsible for poor performance, the next challenge is to determine what changes are to be made to provide the greatest increase in performance with the minimum of development and testing effort.

When such an exercise is undertaken, it is imperative that refactoring is performed within a structured process and decisions are based on empirical data.

Our Refactoring for Performance service uses our proven process and toolset, and our Performance Centre’s expertise to highlight exactly what areas should be refactored, how they should be improved and the results that will be obtained by effecting the changes.

The service is delivered in a very pragmatic manner; we realise that suggesting our clients completely re-architect their applications over a period of months is not feasible and look for easy-to-implement and low cost solutions that will deliver real benefit in a matter of days or weeks.

If possible, for each identified area to be refactored, a test class (suite) is created outside of the main application code base to recreate the performance or scalability problem. This will then be sent to our Performance Centre members who, using their deep experience of how to improve Java performance, will re-implement the test (suite) to provide the same functionality but with empirically proven better performance.

Hence the Refactoring for Performance service provides our clients with empirical data and costs on how to improve their performance, allowing them to make an informed decision on how to proceed.