I was under the impression that an object pool is a design pattern used for managing a group of pre-allocated objects to which a client can request and be returned one of these objects. However, it seems that boost.pool's object_pool class has more to do with lower-level memory management than object management. Why did they go with this name, as opposed to something like memory_pool? Am I under the wrong impression that boost's object pool is really a memory pooling scheme? Or are they essentially the same thing? Also, why hasn't there been a standard implementation of a more high-level object pool pattern?
Clarification on the "object pool" pattern?
2.8k Views Asked by jwalk At
1
There are 1 best solutions below
Related Questions in C++
- C++ using std::vector across boundaries
- Linked list without struct
- Connecting Signal QML to C++ (Qt5)
- how to get the reference of struct soap inherited in C++ Proxy/Service class
- Why we can't assign value to pointer
- Conversion of objects in c++
- shared_ptr: "is not a type" error
- C++ template using pointer and non pointer arguments in a QVector
- C++ SFML 2.2 vectors
- Lifetime of temporary objects
- I want to be able to use 4 different variables in a select statement in c ++
- segmentation fault: 11, extracting data in vector
- How to catch delay-import dll errors (missing dll or symbol) in MinGW(-w64)?
- How can I print all the values in this linked list inside a hash table?
- Configured TTL for A record(s) backing CNAME records
Related Questions in OBJECTPOOL
- C# Protobuf .NET Using Preexisting Byte Array
- How to avoid heap fragmentation in iOS
- How can I prevent construction with Object Pool
- Is GenericObjectPools borrowObject Method thread safe?
- C++ object pool: program crashes when using malloc
- Arrays and Linked Lists in java
- Does object pool pattern requires creation of objects before they even needed
- Objectpool vs. immutable Objects
- Eliminate abruptly closed sockets from the pool, Java
- How do you make your Java application memory efficient?
- Use boost::object_pool can not quit clearly. Am I misusing?
- BlockingCollection(T) performance
- scala-way for managing object pools
- C++ Lock-Free templated ObjectPool
- Boost Pool experience requested. Is it useful as allocator with preallocation?
Related Questions in BOOST-POOL
- Move constructor is not called when using boost::pool_allocator
- boost pool alternative to calloc
- How to use boost_pool with std::vector<bool>?
- How to use cmake to find the boost pool library?
- boost::pool_allocator needs eight static libraries?
- Free all objects in boost::singleton_pool
- How can I get the sizes of the allocations that needs to be done for this handler?
- How to use boost::simple_segregated_storage?
- Object creation in boost::singleton_pool
- boost::object_pool constructor number of arguments
- Custom allocation using boost singleton_pool slower than default
- Dealing with std::string/std::vector member variables while using boost::singleton_pool
- boost pool with specified element size, and specified initial # of element?
- Boost Pool Library: How to reuse created objects?
- boost fast_pool_allocator sometimes requests a huge allocation
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
After reading more thoroughly into the
boost.pooldocumentation, I think I understand my confusion. I'm used to thinking of an object pool implemented as a class which allocates and manages a set of direct objects. Consider,However, it seems
boost.poolimplements a different concept of object pooling, one used for a completely different purpose than the one as suggested above.boost.poolallocates and manages the underlying memory of the desired object(s), presumably so that it can increase heap performance by means of what it describes as Simple Segregated Storage. It in fact does not follow this concept of the object pool pattern. An explanation on the distinction between the two patterns can be found in the answer to my subsequent question.