Core Software Performance Optimization Principles
Jakob Jenkov |
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
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:
- Algorithmic optimization
- Implementation optimization
- Hardware aligned code optimization
- Data to CPU proximity optimization
- Data size optimization
- Minimize action overheads
- Idle time utilization
- Parallelization
- External system interaction
- 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 !!!).
Tweet | |
Jakob Jenkov |