php连接mysql 内存占用的测试代码

来源:互联网 发布:热血传奇mac 编辑:程序博客网 时间:2024/05/21 09:53
$db = mysql_connect('192.168.xx.xx','xxxx','xxxx');$sql = 'SELECT * from items';mysql_select_db('jv01',$db);echo 'SELECT_DB: ',convert(memory_get_usage()),"\n";     //619.26 kb$r = mysql_query($sql,$db);echo 'QUERY_SQL: ',convert(memory_get_usage()),"\n";    //619.98 kb  ###什么?查询完之后,内存大小居然只增加了不到1k?我那个表可是几十M的数据啊//sleep(50);  // hold住进程,别销毁,留着看当前进程的内存分配1$arr = array();while ($rs = mysql_fetch_assoc($r)){    $arr[]=$rs;}echo 'FETCH_RS: ',convert(memory_get_usage()),"\n";    //27.11 mb  ###什么?刚刚不是只增加了1k吗?这里的遍历的结果集怎么突增几十M啊?尼玛这到底是什么情况?unset($arr);echo 'UNSET: ',convert(memory_get_usage()),"\n";    //620.12 kb  #### $arr z占了 几十Mmysql_free_result($r);echo 'FREE_R: ',convert(memory_get_usage()),"\n";    //620 kb    ### 结果集居然只有0.12 k?这不扯淡么? 莫非。。。莫非缓冲区的数据php统计不到?莫非不是调用zend 内存申请函数来申请内存的?//sleep(50);  // hold住进程,别销毁,留着看当前进程的内存分配2function convert($size){ $unit=array('b','kb','mb','gb','tb','pb'); return @round($size/pow(1024,($i=floor(log($size,1024)))),2).' '.$unit[$i];}/*//返回结果如下:SELECT_DB: 619.26 kbQUERY_SQL: 619.98 kbFETCH_RS: 27.11 mbUNSET: 620.12 kbFREE_R: 620 kb*/


原创粉丝点击