Performance Checklist
Specify the required performance.
Ensure performance objectives are clear.
Specify target response times for as much of the system as possible.
Specify all variations in benchmarks, including expected response ranges (e.g., 80% of responses for X must fall within 3 seconds).
Include benchmarks for the full range of scaling expected (e.g., low to high numbers of users, data, files, file sizes, objects, etc.).
Specify and use a benchmark suite based on real user behavior. This is particularly important for multiuser benchmarks.
Agree on all target times with users, customers, managers, etc., before tuning.
Make your benchmarks long enough: over five seconds is a good target.
Use elapsed time (wall-clock time) for the primary time measurements.
Ensure the benchmark harness does not interfere with the performance of the application.
Run benchmarks before starting tuning, and again after each tuning exercise.
Take care that you are not measuring artificial situations, such as full caches containing exactly the data needed for the test.
Break down distributed application measurements into components, transfer layers, and network transfer times.
Tune systematically: understand what affects the performance; define targets; tune; monitor and redefine targets when necessary.
Approach tuning scientifically: measure performance; identify bottlenecks; hypothesize on causes; test hypothesis; make changes; measure improved performance.
Determine which resources are limiting performance: ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access