Payroll Performance Problem

IBM's software laboratory in Stuttgart, Germany, received complaints over unsatisfactory performance from several customers running a payroll application maintained by IBM. iPerformance offering a "No cure, no pay" analysis was asked to look into the problem.

Having collected performance data during a test run of the application, GiAPA's analysis showed that more than half of the run time was used in a loop doing a nested sequential access of three tables. Knowing the reason for the delay it was only a matter of hours to change the code to store the records in ascending sequence in three arrays and use a binary search to reach the wanted data.

This simple change caused the run time to be reduced by more than 50 %. As it most often is the case, no change was needed to the complex main logic of the payroll program - only access of the data was optimized.