PHP内存管理
操作系统在申请内存空间的时候回引发系统调用
PHP的默认最大内存使用时32M
在php.ini中
memory_limit=32M
登录后复制
或者采用动态方式修改最大内存:
登录后复制
获取目前内存使用情况
memory_get_usage() //目前PHP脚本所用的内存大小memory_get_peak_usage() //返回当前位置占用内存峰值,这样就可以知道内存峰值autoload() //避免一次性包含不一定会使用的类
登录后复制
PHP的内存分布和管理
|应用层Applecation||||
|-----|||
| 接口层 Emalloc/efree|堆层Heap|存储层Storange||
|malloc|win32|mmap_anon|mmap_zero|
内存管理
初始化:
zend_mm_startup(); //初始化存储层zend_mm_startup_ex(); //初始化堆层ZEND_MM_SEG_SIZE //默认256*1024ZEND_MM_SEG_SIZE //默认的内存分配方案4种
登录后复制
- 小块内存表:free_buckets
- 大块内存表:larg_free_buckets
剩余内存表:rest_buckets
前两个为HashTable,每个HashTable都有自己的哈希函数。