> 백엔드 개발 > PHP 튜토리얼 > 高手帮忙看一段代码,为什么内存耗尽

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

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
풀어 주다: 2016-06-23 14:11:48
원래의
954명이 탐색했습니다.

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

多谢!


回复讨论(解决方案)

这个以前发的,来个人接一下分啊!

http://bbs.csdn.net/topics/390121151

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

不知到 get_hash_table 的算法,但 $rand_uid 的数据跨度是 5000000

分批次执行,释放内存

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

不知到 get_hash_table 的算法,但 $rand_uid 的数据跨度是 5000000

谢谢回复 !

磁盘空间够大,io也正常。

分批次执行,释放内存


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

用 memory_get_usage 函数看一下


分批次执行,释放内存


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

个人表示这个段代码跟死循环基本无差别了,就是他会执行完,在循环体里SLEEP一下看看

你最好把get_hash_tableh和insert_table都贴出来!



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

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿