php内存管理
2015-11-09 15:22
656 查看
对于PHP来说, 它自身提供了一套和C语言对内存分配相似的内存管理API:
当我们调用emalloc申请内存的时候, PHP并不是简单的向OS要内存, 而是会像OS要一个大块的内存, 然后把其中的一块分配给申请者,
这样当再有逻辑来申请内存的时候, 就不再需要向OS申请内存了, 避免了频繁的系统调用.
同样的,
在我们调用efree释放内存的时候, PHP也不会把内存还给OS, 而会把这块内存, 归入自己维护的空闲内存列表. 而对于小块内存来说, 更可能的是, 把它放到内存缓存列表中去(后记, 某些版本的PHP, 比如我验证过的PHP5.2.4, 5.2.6, 5.2.8, 在调用get_memory_usage()的时候, 不会减去内存缓存列表中的可用内存块大小, 导致看起来, unset以后内存不变).
当我们调用emalloc申请内存的时候, PHP并不是简单的向OS要内存, 而是会像OS要一个大块的内存, 然后把其中的一块分配给申请者,
这样当再有逻辑来申请内存的时候, 就不再需要向OS申请内存了, 避免了频繁的系统调用.
同样的,
在我们调用efree释放内存的时候, PHP也不会把内存还给OS, 而会把这块内存, 归入自己维护的空闲内存列表. 而对于小块内存来说, 更可能的是, 把它放到内存缓存列表中去(后记, 某些版本的PHP, 比如我验证过的PHP5.2.4, 5.2.6, 5.2.8, 在调用get_memory_usage()的时候, 不会减去内存缓存列表中的可用内存块大小, 导致看起来, unset以后内存不变).
相关文章推荐
- PHP上传文件问题小议(一)无权限创建文件目录
- PHPExcel导出excel
- 再推荐十款免费的php开发工具
- php开发工具有哪五款
- discuz X3.2 forum_index.php详解
- php
- Zend Framework2 入门教程
- Zend Framework2 入门教程(转)
- 自学php-字符串操作1
- 为开发者准备的9个实用PHP代码片段
- PHP的编程细节
- ThinkPHP3.2.3---更换easyui主题(theme)
- ContentProvider原理及实例
- windows安装phpunit
- PHP编程效率的20个要点
- PHP编程开发怎么提高编程效率 提高PHP编程技术
- ContentProvider学习笔记
- 【php中的curl】php中curl的详细解说
- Yii学习
- php.ini安全配置