FlameDuck :"Imagine there are three different pools of memory: we'll call them, the heap, the memory pool, the OS."
I just want to point out that the way you describe this is actually misleading. The memory pool is actually memory allocated from the process's heap. BM's memory management system then uses this pool to allocate space for BM objects, because as Flameduck points out, it's mostly quicker to manage your own pool of memory than to use OS calls to allocate new memory.
I just want to point out that the way you describe this is actually misleading. The memory pool is actually memory allocated from the process's heap. BM's memory management system then uses this pool to allocate space for BM objects, because as Flameduck points out, it's mostly quicker to manage your own pool of memory than to use OS calls to allocate new memory.