Posts by Year

2020

Old and new function multi-versioning

3 minute read

I have been touching multi-versioning already in two previous articles: Part I, Part II but I wanted to return to this topic once more (and probably not for ...

Avx throttling (Part I) - UPDATED

6 minute read

SIMD instruction Modern CPUs contain so-called vector extensions or SIMD instructions. SIMD stands for Single Instruction Multiple Data. For x86-64 CPUs exam...

Back to Top ↑

2019

The one with shrinking structure (Part II)

6 minute read

In the last post we have been looking on to how size of data, specifically packet descriptors, impacts processing performance. As it turns out, reducing data...

The one with multi-versioning (Part II)

5 minute read

In the last post we have focused on popcount operation and function multi-versioning. In this post I show shortcomings of multi-versioning usied with popcnt ...

The one with multi-versioning (Part I)

5 minute read

Introduction In previous post I have described benefits of inlining and surprising impact of some compilation flags using Find First Set as an example. Today...

The one with compiler flag magic

4 minute read

Introduction At some point in the project I’m working on, I have noticed that variable-size bit set implementation is minor, but still performance bottleneck...

The one with shrinking structure (Part I)

5 minute read

Nowadays real-world applications of C++ gets smaller and more specialised every day. It was decided almost by acclamation that business logic in new projects...

Back to Top ↑