Linked lists are celebrity data structures of software development. They are celebrities because every engineer has had something to do with them in one part of their career. They are used in many places: from low-level memory management in operating systems up to data wrangling and data filtering in machine learning. They promise a lot:…
Denis Bakhvalov from Easyperf.net and me are organizing a performance tuning contest. We give you a source code to optimize, and your task is to investigate it, find the performance bottlenecks, and fix them. In this edition, we are trying to speed up KALDI open source speech recognition toolkit. Click here if you wish to…
In this post we talk about major and minor faults as performance issues that your program can experience, we explain what they are, how to detect them and how to fix them,
We talk about LIKWID and likwid-perfctr, a tool that you can use to get information from the hardware performance counters in a user-friendly way.
We talk about how to detect if your program is spending a lot of time in kernel mode (system mode) and investigate ways to speed them up.
We investigate the topic of premature optimizations, or more specifically, in what cases you want to think early about performance.
In this post we talk about how to write code that is both flexible and fast!
In this post we introduce Speescope, a useful tool to help you visualize what your program is doing and where it is spending time.
A post explaining how a few small changes in the right places can have a drastic effects on performance of an image processing algorithm named Canny.
We talk about virtual functions, and how the performance of software with virtual functions depends on many factors: the cost of additional instructions, cache misses, branch prediction misses, instruction cache misses and compiler optimizations.