2012-04-20 97 views
0

我正在創建一個用於從多個URL中獲取鏈接的工具。我想存儲這些信息,然後測試他們的狀態。我期望不得不測試大量的鏈接,大約60,000。所以我的問題是決定如何存儲要測試的鏈接。以Java存儲數據。文本文件,csv或其他方法?

我想要做的是爲我要刮的URL創建文本文件。我將不得不爲約40個文本文件創建我將要抓取的URL(我所抓取的URL是相同的URL,只是區域化的)。

  • 創建大量文本文件會導致性能問題嗎?
  • 我會最好將網址存儲在一個數組中,然後將 數組寫入文本文件,或者我應該只是將文本的URL寫入文本 文件嗎?或者,還有更好的方法?
  • 有沒有比存儲在文本文件更好的方法? (我真的不 想使用一個數據庫,但如果有一個很好的情況下它,我可能是 相信)
+2

爲什麼你需要存儲它們?如何存儲將被使用?您是否考慮過小型數據庫引擎,例如SQLite? – 2012-04-20 12:42:27

+0

它不是完全必要的。我對編程相當陌生,我在想,如果我要將數據存儲在數組中,那麼需要使用很多內存,從而導致性能問題?在數組中存儲如此多的信息串會使用大量的內存嗎? – Peck3277 2012-04-20 13:02:09

+0

Java使用UTF-16,每個字符大約2個字節。猜測每個URL 200個字符,你會得到:60000 * 200 * 2 = 24 MB。應該很容易適應RAM。 – 2012-04-20 16:04:22

回答

1

恕我直言,最簡單的方法是使用serialization保存您的信息。例如,序列號爲Map<String, Set<String>>的網址。多個文件也應該工作,沒有任何嚴重的性能影響。但它稍長實現

另一種方法 - 註冊於mongolab並使用免費帳戶。 (這不是廣告,我只是喜歡這個服務)你不需要安裝任何東西,只需下載mongo驅動程序,然後繼續

+0

如果我正確閱讀序列化文章(而且我可能不是),那麼這是否意味着我可以將信息存儲在內存中並在稍後調用? 會使用這種方法來存儲大量的大型數組字符串〜60,000會佔用大量的內存並導致性能問題?我很新的編程:/ – Peck3277 2012-04-20 13:04:41

+1

你是對的以後回憶。 6萬個琴絃並不是那麼多。無論如何,你可以調整JVM(爲你的程序分配更多的內存)。這不是關於性能,而是關於內存消耗。你不應該擔心這一點。 – Anton 2012-04-20 13:08:35

+0

這聽起來幾乎正是我需要的。最後一個問題。當你在一個類中序列化一個對象時,你能否在你的應用程序的任何其他地方反序列化它? – Peck3277 2012-04-20 13:16:26

相關問題