12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- Zend Memory Manager
- ===================
- General:
- --------
- The goal of the new memory manager (available since PHP 5.2) is to reduce memory
- allocation overhead and speedup memory management.
- The new manager's "configure" has no "--disable-zend-memory-manager" option,
- but it has "--enable-malloc-mm" instead. It is enabled by default in DEBUG
- build and disabled by default in RELEASE build. When enabled it allows selecting
- between malloc and emalloc at runtime so you can use internal and external memory
- debuggers without recompilation.
- Debugging:
- ----------
- Normal:
- $ sapi/cli/php -r 'leak();'
- Zend MM disabled:
- $ USE_ZEND_ALLOC=0 valgrind --leak-check=full sapi/cli/php -r 'leak();'
- Shared extensions:
- ------------------
- Since PHP 5.3.11 it is possible to prevent shared extensions from unloading so
- that valgrind can correctly track the memory leaks in shared extensions. For
- this there is the ZEND_DONT_UNLOAD_MODULES environment variable. If set, then
- DL_UNLOAD() is skipped during the shutdown of shared extensions.
- Tweaking:
- ---------
- The Zend MM can be tweaked using ZEND_MM_MEM_TYPE and ZEND_MM_SEG_SIZE environment
- variables. Default values are "malloc" and "256K". Dependent on target system you
- can also use "mmap_anon", "mmap_zero" and "win32" storage managers.
- $ ZEND_MM_MEM_TYPE=mmap_anon ZEND_MM_SEG_SIZE=1M sapi/cli/php ..etc.
|