作者jyleef (龍蝦)
看板java
標題[問題] 大資料量導致記憶體不足
時間Sun Feb 13 00:42:08 2011
我的資料量大約有五百萬筆(小於)
然後每一筆要分為45欄
所以陣列宣告下去等於 5百萬*45 (型態會用到String 或 double(二選一))
已經有將記憶體配置改成 -Xmx1575 (已經是最大了) → 無解
也有想過要改用分批讀取再寫入的方式
可是之後要跑 k-means 演算法,還是要一次看全部的資料 → 再度無解
目前我的電腦配備為(只用一台電腦跑)
CPU :AMD 飛龍Ⅱ X4
記憶體:創見 DDR2 800 4G
原本是打算要將記憶體衝到8G
不過以原本的配備下去跑也只能跑到50幾萬筆資料(單純存入)
怕說就算真的衝到8G也未必能跑得完
難道要衝到16G?
不知道版上有沒有人能夠解決這個問題
謝謝各位了~
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 219.85.40.79
1F:→ luoqr:真的不夠 就把硬碟當記憶體用? 02/13 01:17
2F:→ jyleef:如果要一次看全部資料的話 該如何把硬碟當記憶體用呢? 02/13 01:36
3F:→ AmosYang:newegg 上 24G (6*4G) 不到 US$400 了,可以衝了 XD 02/13 03:51
4F:→ MonyemLi:提高記憶體...又吃不到,改64bit吧.不然就是不要用[][] 02/13 08:37
5F:→ dewking:他那台應該是只能插4條記憶體吧.... 02/13 09:55
6F:→ youknowme09:請參考搭配hadoop的方式來做也許有解 02/13 11:17
7F:→ jyleef:OS我可以改64bit 記憶體可能要用DDR3 4G*4 16G可能就可以吧 02/13 13:20
8F:推 slalala:運算過程為什麼不透過資料庫紀錄? 02/13 16:04
9F:推 a1234957:基本上這是最無腦的解法 02/13 20:49
10F:→ flowwinds:你用到k-means的distance是一筆資料跟另一筆資料嗎? 02/13 23:55
11F:→ flowwinds:一筆資料45個column跟另一筆資料45個column算出一個距離 02/13 23:58
12F:→ flowwinds:如果是這樣可以不用 load 全部資料算出initial distance 02/14 00:01
13F:→ flowwinds:matrix,而有initial distance matrix應該能跑之後集群法 02/14 00:03
14F:推 slalala:同樓上兩位 該做的不是把東西全部inicial後才開始 02/15 01:12
15F:→ final01:用64G memory 02/18 18:37