Software optimization

Some notes about software optimization:

Naturally, the numbers above refer to the relative performance of the team in delivering on business goals.

Whenever we need to optimise the code, we should profile it, plain and simple. However, sometimes it makes sense just to know ballpark numbers for relative costs of some popular operations, so you won't do grossly inefficient things from the very beginning (and hopefully won't need to profile the program later 🙂 ).

  1. Choose the right language
  2. Keep it all in memory
  3. Keep data and processing colocated
  4. Keep the system underutilized
  5. Keep context switches to a minimum
  6. Keep your reads sequential
  7. Batch your writes
  8. Respect your cache
  9. Non blocking as much as possible
  10. Async as much as possible
  11. Parallelize as much as possible

See you next time!