Memory Pool Allocators from Jonathan Müller

After I have written a few posts about memory management in C++, I'm very glad to present Jonathan Müller, which will write a guest post about his implementation of the memory library. He will explain to us his concepts about his design. Jonathan is known as an expert in memory management in the C++ community. In the  59 episodes, he presented his ideas to a worldwide audience.

Read more
Views: 69198

Pros and Cons of the various Memory Allocation Strategies

In C++ you have the choice between various memory allocation strategies. In addition to the frequently used dynamic memory allocation, you have the stack allocation. But you can preallocate the memory at the start time of your program. This can be a fixed-sized block or one or more memory pools. Each of these strategies has its pros and cons. Which one, I will answer in this post.

 

Read more
Views: 44764

Strategies for the Allocation of Memory

There a lot of different strategies for allocating memory. Programming languages like Python or Java request their memory from the heap at runtime. Of course, C or C++ has also a heap but prefers the stack. But these are by far not so only strategies for allocating memory. You can preallocate memory at the start time of the program as a fixed block or as a pool of memory blocks. This preallocated memory can afterwards be used at the runtime of your program. But the key question is. What are the pros and cons of the various strategies to allocate memory?

Read more
Views: 79406

Memory Management with std::allocator

What is common between all containers of the Standard Template Library? They have a type parameter Allocator that is by default std::allocator. The job of the allocator is to manage the lifetime of its elements. That means to allocate and deallocate memory for its elements and to initialize and destruct them.

Read more
Views: 78246

Overloading Operator new and delete 2

I overloaded in the last post operator new and delete. Therefore, it was possible to find memory leaks and get a first hint of the bad guys. My solution had two not so nice properties. With this post, I will overcome them.

Read more
Views: 30835

Overloading Operator new and delete 1

It happens quite too often that a C++ application allocates memory but don't deallocate it. This is the job for the operator to new and delete. Thanks to them both you can explicitly manage the memory management of an application.

Read more
Views: 71163

Explicit Memory Management

Explicit memory management has in C++ a high complexity but also provides a great functionality. Sad to say, but this special domain in not so known in C++. For example, you can directly create objects in static memory, in a reserved area, or even in a memory pool. That is functionality, that is often key in safety critical applications in the embedded world. Before the harvest is the work. Therefore, I will give in this post an overview, before I dive deeper into the details.

Read more
Views: 22011

Garbage Collection - No Thanks

C++ is old fashioned. C++ has no garbage collection. No garbage collection? Right! Old fashioned? Wrong!

Read more
Tags: memory
Views: 59262

Perfect Forwarding

Today, we solve " ... a herefore unsolved problem in C++" (Bjarne Stroustrup). To make the long story short, I will write about perfect forwarding.

Read more
Tags: move
Views: 73133

Move Semantic: Two nice Properties

I will talk about two nice properties of the move semantic in this post that is not so often mentioned. Containers of the standard template library (STL) can have non-copyable elements. The copy semantic is the fallback for the move semantic. Irritated? I hope so!

Read more
Tags: memory, move
Views: 20600

My Newest E-Books

Course: Modern C++ Concurrency in Practice

Course: C++ Standard Library including C++14 & C++17

Course: Embedded Programming with Modern C++

Course: Generic Programming (Templates)

Course: C++ Fundamentals for Professionals

Interactive Course: The All-in-One Guide to C++20

Subscribe to the newsletter (+ pdf bundle)

Blog archive

Source Code

Visitors

Today 6032

Yesterday 7646

Week 39327

Month 105993

All 7373833

Currently are 164 guests and no members online

Kubik-Rubik Joomla! Extensions

Latest comments