好手幫忙看一段代碼,為什麼記憶體耗盡

來源:互聯網
上載者:User
高手幫忙看一段代碼,為什麼記憶體耗盡

$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都貼出來!
  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.