Centralized memory management services allow applications and modules to allocate, re-allocate and free up memory, using functions with c-stdlib syntax so that applications can use the same heap without having to create object instances for dealing with memory operations. Brew MP tracks memory by module, re-using any leaked memory to protect the system heap. It detects any un-released memory and automatically frees it when the module is released (i.e., when the ref count of the module goes to zero). By default, malloc() zero-initializes all allocated memory, but developers can disable this with the ALLOC_NO_ZMEM flag for better bulk-allocation performance. The platform manages memory on a per-process basis, and each process has a heap that grows until it reaches the limit specified by the definition of that process.