E作者kurakidream (随波逐流)
看板java
标题[问题] 物件生成
时间Wed Mar 20 23:50:14 2013
各位前辈大家好
最近在做论文相关程式时一直在想一个问题
由於我的程式需要做读取文字档案的动作 档案内容是非常大量的索引档
例如
1 1 4
1 1 3
1 2 3
1 2 2
这样的东西 一次有好几万行
我的问题在於不知道下列哪一种方式较省记忆体
1.写一个读档的class,每次生成物件时把此文字档路径传入建构式中
再做读取档案的动作,这样我每读一个档案就要产生一个物件
2.一个读档的class,里面有一个method是接收传入的档案路径
再做读档,一个物件用到底
我有这个疑问是因为前几届学长是用第一种写法
所以我就想到jvm在回收物件时我们是不知道内部运作的
而读取的内容档案又大 第一种方法是否不小心heap就炸了?
不知道有没有更有效率的读档方式
谢谢大家~
--
( ゚∀゚)你看 我的蒂玛西亚之力已经长这麽大了 ♡
( ) (゚д゚ )<.....
| ′.灬 ノヽノ |
し ⌒U < <
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.115.220.183
1F:推 PsMonkey:我觉得重点不在读档这件事上头... 03/20 23:53
2F:推 KOFXI:我觉得你把所有的档案都读到记忆体中才会让heap爆调 03/20 23:56
3F:→ luoqr:汇到资料库如何....XD 03/21 00:05
不好意思 第一次在Java版发文@_@
我一开始有碰到炸掉的问题 不过把jvm记忆体 设到1g後就不会了
SQL应该不会考虑 很多都忘了 XD.. 比较偏好直接读
※ 编辑: kurakidream 来自: 140.115.220.183 (03/21 00:11)
4F:→ coolcomm:用能动态增长的collection存资料还会炸heap吗? 03/21 00:31
5F:→ coolcomm:借原po文章问一下 03/21 00:32
6F:→ NewSpec:可以考虑用Mahout, 其中的阵列和资料类别都做了特殊处理 03/21 00:38
我记得动态增长他的resize好像也是有极限的 不过这部分我就不太熟了QQ
※ 编辑: kurakidream 来自: 140.115.220.183 (03/21 00:48)
7F:→ swpoker:问一下你读档是? 简单:写入DB~在去操作资料~结束 03/21 09:06
8F:推 superlubu:不考虑效能就先读一次算行数,宣告 array 再读入资料.. 03/21 10:32
9F:→ jej:读档建索引.. 感觉起来像是搜寻引擎在作的事情 apache lucene 03/21 12:32
10F:→ jej:X不知道符不符合你的需求~~ 03/21 12:35
11F:→ swpoker:可以说明一下你要读档做什麽吗?这样才好判别用什麽方法? 03/21 13:53
是做搜寻没错 这些索引档是已经处理过的 读出来就是文件向量
Mahout 跟 Lucene 我都会去看看 感谢大家的建议
※ 编辑: kurakidream 来自: 140.115.130.102 (03/21 15:11)
12F:推 cyclone350:借题发问... Mahout是哪一部分跟原PO问的有关系 03/21 15:56
13F:→ cyclone350:最近有看一下mahout,没印象在读档或建立索引的api 03/21 16:00
14F:→ swpoker:建议去看设计样式中的物件享元(?)及建构方式 03/21 16:49
15F:→ NewSpec:我说的是Mahout中为了大资料而特化的资料类别 03/22 01:04