[問題] 物件生成

看板java作者時間12年前 (2013/03/20 23:50), 編輯推噓4(4011)
留言15則, 9人參與, 最新討論串1/1
各位前輩大家好 最近在做論文相關程式時一直在想一個問題 由於我的程式需要做讀取文字檔案的動作 檔案內容是非常大量的索引檔 例如 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

03/20 23:53, , 1F
我覺得重點不在讀檔這件事上頭...
03/20 23:53, 1F

03/20 23:56, , 2F
我覺得你把所有的檔案都讀到記憶體中才會讓heap爆調
03/20 23:56, 2F

03/21 00:05, , 3F
匯到資料庫如何....XD
03/21 00:05, 3F
不好意思 第一次在Java版發文@_@ 我一開始有碰到炸掉的問題 不過把jvm記憶體 設到1g後就不會了 SQL應該不會考慮 很多都忘了 XD.. 比較偏好直接讀 ※ 編輯: kurakidream 來自: 140.115.220.183 (03/21 00:11)

03/21 00:31, , 4F
用能動態增長的collection存資料還會炸heap嗎?
03/21 00:31, 4F

03/21 00:32, , 5F
借原po文章問一下
03/21 00:32, 5F

03/21 00:38, , 6F
可以考慮用Mahout, 其中的陣列和資料類別都做了特殊處理
03/21 00:38, 6F
我記得動態增長他的resize好像也是有極限的 不過這部分我就不太熟了QQ ※ 編輯: kurakidream 來自: 140.115.220.183 (03/21 00:48)

03/21 09:06, , 7F
問一下你讀檔是? 簡單:寫入DB~在去操作資料~結束
03/21 09:06, 7F

03/21 10:32, , 8F
不考慮效能就先讀一次算行數,宣告 array 再讀入資料..
03/21 10:32, 8F

03/21 12:32, , 9F
讀檔建索引.. 感覺起來像是搜尋引擎在作的事情 apache lucene
03/21 12:32, 9F

03/21 12:35, , 10F
X不知道符不符合你的需求~~
03/21 12:35, 10F

03/21 13:53, , 11F
可以說明一下你要讀檔做什麼嗎?這樣才好判別用什麼方法?
03/21 13:53, 11F
是做搜尋沒錯 這些索引檔是已經處理過的 讀出來就是文件向量 Mahout 跟 Lucene 我都會去看看 感謝大家的建議 ※ 編輯: kurakidream 來自: 140.115.130.102 (03/21 15:11)

03/21 15:56, , 12F
借題發問... Mahout是哪一部分跟原PO問的有關係
03/21 15:56, 12F

03/21 16:00, , 13F
最近有看一下mahout,沒印象在讀檔或建立索引的api
03/21 16:00, 13F

03/21 16:49, , 14F
建議去看設計樣式中的物件享元(?)及建構方式
03/21 16:49, 14F

03/22 01:04, , 15F
我說的是Mahout中為了大資料而特化的資料類別
03/22 01:04, 15F
文章代碼(AID): #1HITgxes (java)