Performance Checklist

  • Consider performance at each stage of the development cycle.

    • Plan for tuning phases.

    • Leave code tuning until after the code is functional and debugged.

    • Consider how a particular performance change will affect other parts of the application.

    • Identify performance limitations.

    • Eliminate performance conflicts.

    • Consider how the performance scales as the application scales.

    • Consider how the performance scales as the application load varies.

  • Determine the general characteristics of the application in the analysis and design phases.

    • Minimize the features in the requirements.

    • Specify performance boundaries and goals.

    • Consider the numbers, sizes, and sources of objects, data, and other parameters of the application.

    • Create an abstract model of the application to identify any performance problems.

    • Design applets to engage the user as soon as possible.

    • Identify and focus on the performance costs of shared resources.

    • Target decoupling, indirection, abstraction, and extra layers in the design.

    • Predict the performance of design elements that block, copy, queue, or distribute.

    • Consider alternative designs that bypass or reduce high performance costs.

    • Avoid transactions where possible.

    • Minimize transaction time where transactions are necessary.

    • Lock only where the design absolutely requires it.

    • Design parallelism into the application wherever possible. Identify what cannot be parallelized.

    • Watch out for too much parallelism. There are diminishing returns from parallelism overheads.

    • Balance workloads. ...

Get Java Performance Tuning now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.