Andreas Weis


Andreas has been writing software professionally for more than 10 years, working in areas ranging from real-time graphics to distributed systems to embedded systems. He enjoys hiding complex functionalities behind powerful type-rich interfaces and likes it very much when the compiler finds his bugs for him. Andreas is one of the co-organizers of the Munich C++ user group, where he gets to discuss these topics with others on a regular basis.

He currently works for BMW, where he tries to make cars smarter than humans.



Taming dynamic memory - An introduction to custom allocators in C++ (2018)

Dynamic memory allocation is a feature that is often taken for granted. Most developers use some form of new or malloc every day, usually without worrying too much what goes on behind the scenes. But what about those situations where the built-in mechanisms are not good enough, be it for reasons of performance, safety, or due to restrictions of the target hardware?

In this talk, we will explore how C++ uses custom allocators to overcome those issues. We will explain how basic allocation techniques like pooling and monotonic allocation behave with regards to performance and reliability. We will take a look at some of the technical challenges behind allocators, like the different forms of alignment and the way that the standard library manages stateful allocators. And finally, we will take a look at some popular allocator implementations and how to integrate them with a modern C++ codebase.