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

jom_ch 2013-05-30 10:26:18

$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命令执行的代码,为什么会内存耗尽?

多谢!
...全文
197 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
jom_ch 2013-05-31
  • 打赏
  • 举报
回复


我看了下磁盘io,应该是这个导致的

lazyboy_wu 2013-05-31
  • 打赏
  • 举报
回复
你最好把get_hash_tableh和insert_table都贴出来!
wxl1010 2013-05-30
  • 打赏
  • 举报
回复
个人表示这个段代码跟死循环基本无差别了,就是他会执行完,在循环体里SLEEP一下看看
xuzuning 2013-05-30
  • 打赏
  • 举报
回复
用 memory_get_usage 函数看一下
引用 5 楼 jom_ch 的回复:
[quote=引用 3 楼 DOwnstairs 的回复:] 分批次执行,释放内存
关键是我不知道哪部分消耗了内存啊![/quote]
jom_ch 2013-05-30
  • 打赏
  • 举报
回复
引用 3 楼 DOwnstairs 的回复:
分批次执行,释放内存
关键是我不知道哪部分消耗了内存啊!
jom_ch 2013-05-30
  • 打赏
  • 举报
回复
引用 2 楼 xuzuning 的回复:
应该不会,但如果你的硬盘空间不足,就不好说了 至少 insert_table 应判断是否插入成功 不知到 get_hash_table 的算法,但 $rand_uid 的数据跨度是 5000000
谢谢回复 ! 磁盘空间够大,io也正常。
SoulRed 2013-05-30
  • 打赏
  • 举报
回复
分批次执行,释放内存
xuzuning 2013-05-30
  • 打赏
  • 举报
回复
应该不会,但如果你的硬盘空间不足,就不好说了 至少 insert_table 应判断是否插入成功 不知到 get_hash_table 的算法,但 $rand_uid 的数据跨度是 5000000
jom_ch 2013-05-30
  • 打赏
  • 举报
回复
这个以前发的,来个人接一下分啊! http://bbs.csdn.net/topics/390121151

20,359

社区成员

发帖
与我相关
我的任务
社区描述
“超文本预处理器”,是在服务器端执行的脚本语言,尤其适用于Web开发并可嵌入HTML中。PHP语法利用了C、Java和Perl,该语言的主要目标是允许web开发人员快速编写动态网页。
phpphpstorm 技术论坛(原bbs)
社区管理员
  • 开源资源社区
  • phpstory
  • xuzuning
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧