当前位置:Gxlcms > PHP教程 > 好手帮忙看一段代码,为什么内存耗尽

好手帮忙看一段代码,为什么内存耗尽

时间:2021-07-01 10:21:17 帮助过:20人阅读

高手帮忙看一段代码,为什么内存耗尽

$i = -1;
while( $i++ < 495000000 ) {
$rand_uid = rand(100000000,105000000);
$rand_fuid = rand(100000000,999999999);
$tab_name = get_hash_table('friends',$rand_uid);
$up_array = array(
'uid' => $rand_uid,
'fuid' => $rand_fuid
);
insert_table($tab_name, $up_array,1);
}


需要测试数据,要把5亿条数据写入到500个mysql表里面,直接用php命令执行的代码,为什么会内存耗尽?

多谢!

分享到:


------解决方案--------------------
应该不会,但如果你的硬盘空间不足,就不好说了
至少 insert_table 应判断是否插入成功

不知到 get_hash_table 的算法,但 $rand_uid 的数据跨度是 5000000
------解决方案--------------------
分批次执行,释放内存
------解决方案--------------------
用 memory_get_usage 函数看一下

引用:
Quote: 引用:

分批次执行,释放内存



关键是我不知道哪部分消耗了内存啊!

------解决方案--------------------
个人表示这个段代码跟死循环基本无差别了,就是他会执行完,在循环体里SLEEP一下看看
------解决方案--------------------
你最好把get_hash_tableh和insert_table都贴出来!

人气教程排行