[JAVA高手入] 幾億個item要點先fit到入2gb heap space?
尻唔易柒 2022-8-11 22:03:06 sorry頭先開錯台
利申番先: 功課黎 一個同學都唔識 TA唔覆email 走投無路

我依加要砌一個 50000 row x 50000 column嘅matrix黎裝一大堆double
唔係個個postion都有non-zero value, 但每行實際上有幾多個value係non-zero value我係唔知
所以我用左hash map黎裝啲value, e.g. HashMap<Point, Double>

但行到第600行停左, error出'java.lang.OutOfMemoryError: Java heap space'

想問下有咩其他方法可以減低個memory usage?
linked-list? sparse array?

Ads

VVWVV 2022-8-11 22:08:04 拆細佢
淨係要用既先LOAD
齒乳圍吾 2022-8-11 22:11:56 講多啲你實際要做啲咩?
VVWVV 2022-8-11 22:12:14 淨係記低non-zero位置
尻唔易柒 2022-8-11 22:12:58 因為係analytic功課黎
所以份功課fix死左一定要load曬所有data
然後write一個50000 x 50000 matrix嘅file
:^(
尻唔易柒 2022-8-11 22:14:52 其實係要整個50000人嘅pearson's correlation matrix
計correlation個part已經做曬
但就唔知點先可以係2gb ram嘅情況下output到一個matrix出黎
:^(
簡單隨緣 2022-8-11 22:15:24 係咪有條for loop炒左
VVWVV 2022-8-11 22:16:13 你唔駛LOAD晒再WRITE架
逐D黎
唔清楚你要做乜
尻唔易柒 2022-8-11 22:17:09 應該無事
我計左幾十萬個item都行到 但就因為memory space limit所以scale唔到上去
齒乳圍吾 2022-8-11 22:18:17 唔係data analyst 所以唔係好明點解50000人會變50000x50000
但如果要write file, 你一行一行唔得咩?咪變左array with size 50000?
簡單隨緣 2022-8-11 22:19:44 one off野咪睇下有無得改下D config by pass左佢算
唔得就要sort左,拆開來做,再merge返埋個result

Ads

VVWVV 2022-8-11 22:20:35 JVM個heap size有冇改
尻唔易柒 2022-8-11 22:22:02 份功課fix死左一定要跟佢個format:
matrix = calculate(inputdata);
matrix.writeCorrelationMatrix(outputFile);

write個part我寫完, 應該係行到

但係出matrix個part卡住左
尻唔易柒 2022-8-11 22:22:38 功課唔比
:^(
蘆葦不是葱 2022-8-11 22:22:39 有冇試過重新開機?
:^(
尻唔易柒 2022-8-11 22:24:23 因為係睇人同人之間嘅correlation
write個part無事
但功課format關係唔可以直接write落個outputfile度
一定要出一個matrix黎比個write function去write
ToTheMoon 2022-8-11 22:24:55 用 arrary 唔得咩
河北彩花賊 2022-8-11 22:25:37 2d array 可以變做x,y coordinate
如果係搵到哂所有correlation
最好嘅方法係搵到一條formula係sub x,y 會搵返個value
不過條formula唔易搵
:^(
:^(


利申 數學U
齒乳圍吾 2022-8-11 22:26:43 即係死係calculate?
尻唔易柒 2022-8-11 22:27:01 功課唔比改config
:^(
尻唔易柒 2022-8-11 22:28:35
計數無問題
但點將啲數係2gb ram下output出一個matrix/sort of matrix 搞唔掂

Ads

尻唔易柒 2022-8-11 22:29:27 試過用sparse array
int[][] sparse = new int[3][50000*50000];
立即出error
:^(
齒乳圍吾 2022-8-11 22:30:33 其實你應該係未計曬
如果計曬你應該已經有個matrix?
係咪你計數個邊variable 問題 所以oom
簡單隨緣 2022-8-11 22:31:07 教書都無咩時間自己整功課
建議係佢個recommendation reading list到揾下答案
田味吉1997 2022-8-11 22:32:37 清咩U
份功課咁有挑戰性
:^(