Core Software Performance Optimization Principles

Jakob Jenkov
Last update: 2022-05-03

This tutorial lists the core software performance optimization principles I use when working with software performance optimization. From time to time - developers run into performance problems in the software they work on. Or - you may know ahead of time that the performance requirements are high for the software you are working on. In those situations it is useful to have these core principles as a guide to where to look for performance optimization potential.

Core Software Performance Optimization Principles Tutorial Video

If you prefer video, I have a video version of this tutorial, here:

Core Software Performance Optimization Principles Tutorial Video
Core Software Performance Optimization Principles Tutorial Video

Potential Gains of Performance Optimization

The difference between an unoptimized and a fully optimized software system can be a factor 10 to 100 in throughput. Even a factor 1.000 if the right conditions are present.

You may not always benefit from such a performance gain - but sometimes you do.

List of Core Software Performance Optimization Performance Principles

Here are what I consider core performance optimization principles:

  1. Algorithmic optimization
  2. Implementation optimization
  3. Hardware aligned code optimization
  4. Data to CPU proximity optimization
  5. Data size optimization
  6. Minimize action overheads
  7. Idle time utilization
  8. Parallelization
  9. External system interaction
  10. Measure - don't assume!

I will get into a bit more details about each of these principles in the following sections.
(coming soon - see the video for more details until then !!!).

Jakob Jenkov

Featured Videos

Core Software Performance Optimization Principles

Thread Congestion in Java - Video Tutorial















Close TOC

All Trails

Trail TOC

Page TOC

Previous

Next