PHP内存泄漏检测方法
来源:互联网 发布:扣白底图软件 编辑:程序博客网 时间:2024/05/17 22:17
一 PHP内置内存泄漏探测:
PHP本身有自己的内存管理,在编译时,增加编译选项--enable-debug 以及相应扩展编译时加上 ./configure --enable-debug,这样编译后,使用命令行执行php test.php 如果有内存泄漏则会往 标准错误输出 打印错误信息。
注意:这个方法只能检测到使用了Zend内存管理的情况,对于直接使用malloc/free来申请内存的应用或扩展是无法检测到的。
二 valgrind
相关地址:
https://bugs.php.net/bugs-getting-valgrind-log.php
http://valgrind.org/
PHP本身有自己的内存管理,在编译时,增加编译选项--enable-debug 以及相应扩展编译时加上 ./configure --enable-debug,这样编译后,使用命令行执行php test.php 如果有内存泄漏则会往 标准错误输出 打印错误信息。
注意:这个方法只能检测到使用了Zend内存管理的情况,对于直接使用malloc/free来申请内存的应用或扩展是无法检测到的。
二 valgrind
wget http://valgrind.org/downloads/valgrind-3.11.0.tar.bz2tar -jxvf valgrind-3.11.0.tar.bz2cd valgrind-3.11.0; ./autogen.shmkdir /usr/local/valgrind/ && ./configure --prefix=/usr/local/valgrindmake && make installvim /etc/profileexport USE_ZEND_ALLOC=0//php-clivalgrind --leak-check=full php test.php//php-fpmvim # php_fpm_BIN=${exec_prefix}/sbin/php-fpmexport USE_ZEND_ALLOC=0php_fpm_BIN="valgrind --log-file=/var/valgrind-%p.log /usr/local/php/sbin/php-fpm"/usr/local/php/sbin/init.d.php-fpm restarttail -f valgrind*USE_ZEND_ALLOC是PHP提供的hook,我们可以在启动PHP前指定USE_ZEND_ALLOC=0,关闭内存管理功能。这样所有的内存分配都会直接向操作系统申请,这样valgrind就可以帮助我们定位问题。
相关地址:
https://bugs.php.net/bugs-getting-valgrind-log.php
http://valgrind.org/
0 0
- PHP内存泄漏检测方法
- 检测内存泄漏的方法
- VS2005内存泄漏检测方法
- VS2005内存泄漏检测方法
- VS2005内存泄漏检测方法
- 简单内存泄漏检测方法
- VS2005内存泄漏检测方法
- VS2005内存泄漏检测方法
- VS2005内存泄漏检测方法
- vc 内存泄漏检测方法
- GDI泄漏和内存泄漏 检测方法
- VC下内存泄漏的检测方法
- MFC程序内存泄漏检测方法
- VS2005 检测内存泄漏的方法(转载)
- 预防和检测内存泄漏的方法:
- VC关于检测内存泄漏方法
- 关于内存泄漏检测的一些方法
- Windows下内存泄漏检测方法
- delphi根据汉字生成拼音,全拼,或者带空格,或者不带空格
- 获取所有的provider
- 用DrawText实现高效的Android倒计时功能。
- 微信应用开发记录
- 修改ubuntu默认开机亮度
- PHP内存泄漏检测方法
- 黑马52期学后总结笔记(十一)
- 创建队列 NSOperationQueue dispatch队列组
- Android SQLite数据库 《第一行代码》
- 最令人发指叫人吐血的代码风格
- Cocos-2dx台球游戏实现
- Java对象 json之间的转换(json-lib)
- Android常用开源项目compile
- ios UISearchDisplayController 实现 UITableView 搜索功能