作者ogamenewbie (._.)
看板java
标题Re: [问题] 阵列问题
时间Sat Jan 16 02:31:48 2010
先跟你说, 我回这篇可能看起来不太客气..
※ 引述《tstanly ()》之铭言:
: dear 各位
: 今天做了一点测试
: 以下是我的一小部分code
: ====================================
谅删, 不过你列出来的 code 有帮助你解决这个问题的陈述嘛?
: =========================================================
: 我的问题主要是做完fastareadin()和class_value_handle()这两件function後
: 前者是做将资料读入 後者是计算资料的类别值之类动作
所以呢? 这几句话有讲明他们对阵列的影响跟里面数值的影响, 坐落范围吗?
: 会大量宣告以下五个array
: 分别是freq_array, trans_array, u_y, Pr_jy, entropy
: 现在我先把後面四个阵列宣告先注解掉
你都注解了还摆出来干麻, 如果你是记忆体不足
为什麽不直接把你需要的最大需要空间大小列出来?
前面 t 大不是教你怎麽算?
: 先看freq_array这个阵列
: 首先k值是从fastareadin()这个function得到
: 以此例子来说 k会等於5000
: 而mer值是我设定的 例如当我设定mer=8
: 所以 freq_array=new int[5000][65536+1]; (因为4^8=65536)
k 跟 mer 可能等於多少有什麽意义吗
还是以後 mer 可能可以 30 的时候又再上来问一次?
: 这时候eclipse就会出现
: Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
: 的error
: 也就是说我的main里面只执行这几行就会出现这error
: 所以明显错误是因为freq_array的无法宣告...
: 而我的eclipse有设定memory的参数
: -Xmx1024M
: 加到最大了..加不上去了..= =
: 请问我的问题有办法解决吗...
: 我自己的烂方法是宣告多个阵列再合起来
从你这篇的文章上看起来, 这个问题跟之前问的不一样的地方
就是你做了 -Xmx 跟 分阵列 两种努力...
: 老师的建议是
: 将所有资料都写在file 也就是不要宣告阵列...
问题是, 推文中 T 大跟你老板类似的建议你没有去做做看
: 但我还是想宣告阵列啊....因为code都写好了
写好了就改进阿
: mer=1~10 只有当mer=8,9,10才会出问题..........
(恕删)
你是个做研究的, 所以我没跟你说你得解释那些 func..
如果可以的话建议考虑练习使用 method 这个名词来称呼
所以我没要你解释那些 method 的意义,
也没要说你得揭露程式码或虚拟码.
上面那些东西请你保管好好. 留着自己看就好了.
讲更白一点, 说不定你拿出来我们还嫌浪费时间.
还要帮你 review.
但是今天既然都已经知道问题是记忆体不足
为什麽阵列最大可能会出现的大小没有说明
里面的数值从多少到多少没有说明
可能你根本不需要 int 啊
更大的问题是, 已经有两个以上的人类跟你建议一个可能可行的方法
你不嚐试的原因不是因为说 IO 导致执行过慢等等比较光冕堂皇的理由
单单只是不想做修改... *shrug
最後, 跟你讲, 写这篇不是要鞭你,
而是任何人 (包含你) 看完这篇以後
可以认真思考一下提问的关联性
并藉此获得点什麽东西, 这篇文章就有意义了
前面被我回的不客气不只你一个.
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 218.160.32.42
1F:推 PsMonkey:哎呀... 慢了... [收刀] [被殴] 01/16 14:31
2F:推 sbrhsieh:拍拍手~~~ 01/16 14:42
3F:→ TonyQ:话说原po是我大学同学,他人还不错啦,可能在这方面实做经验 01/16 22:31
4F:→ TonyQ:不多,所以比较不会描述问题。基本上应该是把读取、写入的介 01/16 22:33
5F:→ TonyQ:面抽出来就不难实做了才是...... 01/16 22:37
6F:推 tstanly:感谢你的赐教 01/17 20:54