作者Lordaeron (Terry)
看板java
標題Re: [問題] 大資料量導致記憶體不足
時間Sun Feb 13 10:28:35 2011
※ 引述《jyleef (龍蝦)》之銘言:
: 我的資料量大約有五百萬筆(小於)
: 然後每一筆要分為45欄
: 所以陣列宣告下去等於 5百萬*45 (型態會用到String 或 double(二選一))
: 已經有將記憶體配置改成 -Xmx1575 (已經是最大了) → 無解
: 也有想過要改用分批讀取再寫入的方式
: 可是之後要跑 k-means 演算法,還是要一次看全部的資料 → 再度無解
: 目前我的電腦配備為(只用一台電腦跑)
: CPU :AMD 飛龍Ⅱ X4
: 記憶體:創見 DDR2 800 4G
: 原本是打算要將記憶體衝到8G
: 不過以原本的配備下去跑也只能跑到50幾萬筆資料(單純存入)
: 怕說就算真的衝到8G也未必能跑得完
: 難道要衝到16G?
: 不知道版上有沒有人能夠解決這個問題
: 謝謝各位了~
還不簡單, 這邊一定很多人可以回答你的.
請你改成64 bit OS, 改成64 bit JDK.
再去買44G memory 回來插就好了.
因為就算是double 也要吃38G 多的記憶體.
如果你的板子不能support 44G RAM, 哪就換電腦吧.
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.45.232.37
1F:推 jyleef:我目前跑50萬筆資料javax約要用1G記憶體 所以正常推論要跑 02/13 13:24
2F:→ jyleef:500萬筆資料需要10G記憶體 為何要用到44G? 是不能這樣算嗎? 02/13 13:26
3F:→ Lordaeron:你不是寫一筆是一個double 的大小,哪不就是8 bytes? 02/14 00:18
4F:→ Lordaeron:哪麼50萬筆就是要乘8 啊,還是你不是哪意思哦 02/14 00:20
5F:→ Lordaeron:10G 就簡單啦, 換OS,JDK部分不變,就是去買4支4G的RAM吧 02/14 00:22
6F:→ Eureka7:重點應該放在想出另一種方法來處理data吧......你這次加 02/15 09:33
7F:→ Eureka7:記憶體ok,阿下次資料變成5000萬筆怎麼辦?繼續加?? 02/15 09:35
8F:→ ogamenewbie:如果資料遲早會增長到至少要貨櫃型資料中心處理的話 02/15 15:00
9F:→ ogamenewbie:持續規畫硬體架構的擴充也是一個要兼顧的層面... 02/15 15:01
10F:→ Lordaeron:不會吧,5000萬筆就要貨櫃中心? 要用到貨櫃中心這麼大的 02/15 18:28
11F:→ Lordaeron:還用java來處理, 哪就是時間太多了. 02/15 18:30
12F:→ ogamenewbie:我是不知道你從哪邊看到5000萬筆就要貨櫃中心... 02/16 18:34
13F:→ edward13:怎覺得這篇是在反串..那些搞資料ETL不就dram加不完 02/17 16:10
14F:→ Lordaeron:如果不想改變你的AP,取簡單就是加加加,有問題嗎? 02/23 11:04