Apr. 27th, 2019
After ~13 years working full time in software performance consulting role, I think now I have enough statistics about different types of software optimization projects.
~20% of the projects are the most challenging, a customer comes to me because their software is already well optimized, but they found a performance regression on a new platform, or in a new middleware, OS kernel, compiler, etc. There are some common patterns for these projects, but usually they are unique. The fix is usually on system level, CPU u-arch level or combination of two. It is almost never with software/algorithms.
~30% are interesting. The software is reasonably optimized, the team understands current performance and constraints, but there is a regression or unexpected slowdown, or they just need it to run ~20% faster. In these cases couple of simple tricks with system and u-arch optimizations usually work. No need to deeply investigate application business logic either. These projects are my usual trade, not too fancy, but OK. Specialisation pays off. Sometimes I also find something to learn on these projects, but not very often.
( Read more... )
~20% of the projects are the most challenging, a customer comes to me because their software is already well optimized, but they found a performance regression on a new platform, or in a new middleware, OS kernel, compiler, etc. There are some common patterns for these projects, but usually they are unique. The fix is usually on system level, CPU u-arch level or combination of two. It is almost never with software/algorithms.
~30% are interesting. The software is reasonably optimized, the team understands current performance and constraints, but there is a regression or unexpected slowdown, or they just need it to run ~20% faster. In these cases couple of simple tricks with system and u-arch optimizations usually work. No need to deeply investigate application business logic either. These projects are my usual trade, not too fancy, but OK. Specialisation pays off. Sometimes I also find something to learn on these projects, but not very often.
( Read more... )