|
Allocating heap memory and deallocating it properly is critical to any application. Within
ACIS, this is especially true for a number of reasons:
|
|
|
There are a number of platforms which manage heap memory differently. When allocations/deallocations are done incorrectly, some platforms crash, some platforms leak, and others proceed silently.
|
|
ACIS has the ability to manage small blocks of heap memory - which we call freelisting. Freelisting is a heap management algorithm that provides a substantial performance increase - and is transparent to the end user. If the
ACIS allocation/deallocation rules are not followed, a block might taken from the freelist and freed by the OS, or vice versa, which will almost always result in a crash.
|
|
ACIS also has the ability to track all heap allocations and deletions. If the
ACIS allocation/deallocation rules are not followed, some allocations show up as memory leaks - when they simply aren't being freed properly.
|