2009-07-31 29 views
2

我已經想出了一個基於磁盤的數據結構來存儲傳入的實時數據,這不是在內存中,因爲數組可以填滿並導致jvm崩潰。數據結構和算法效果很好。我唯一的問題是這是否會嚴重影響SD卡的使用壽命?SD卡的使用壽命,同時使用它來存儲數據結構

我知道sdcards對它們的讀寫有限,但「有限」多少。平均每次會話20分鐘寫入SD卡是否會對SD卡造成極大的影響,直到用戶看到它是該應用程序將其殺死爲止?

+2

取決於在這20分鐘內寫入了多少數據。 – 2009-07-31 19:18:51

+1

雖然它正在測試零售USB'pendrive',而不是SD媒體,但下面的文章中包含的信息可能對您很有意思(即使它僅用於測試方法):http://www.bress.net/blog/index .PHP?URL =檔案/ 114-如何-長是否-A-閃存驅動器,最後。html – 2009-07-31 19:51:48

+1

@ Rob,Michael,Spencer and Cruachan 所有的答案都可能是這個問題的最佳答案,即使我知道沒有「最佳答案」。 我希望能有多種答案支持,我要向Cruachan提出建議,讓他們提出用數據結構測試多張卡片的想法。 – 2009-07-31 19:57:42

回答

2

卡上的寫入次數爲100000秒。這是閃存扇區擦除的次數,可能比磁盤扇區大得多。

我發現與計算下列文件:STEC SMALL CARDS WEAR LEVELING AND LIFETIME CALCULATOR

其中一個例子: 壽命= 2,000,000個X(512MB - 100MB - 128KB)/(50MB×10 /天)=4513年

所以,如果你做一個合理的設計工作(即不打開/關閉文件的每個字節,因爲這可能會強制刷新,從而寫入),我甚至不打算設置非常廣泛的測試......

2

我以爲我記得現代的閃存是好幾十萬重寫。據我所知,讀數不受限制。

如果它讓你感覺更好,Windows Vista支持名爲ReadyBoost的功能,它允許您在USB閃存驅動器上分配緩存空間以提高性能。我認爲,只要你設法甚至寫出了,你應該沒問題。

此外,一些閃存模塊具有集成寫入優化的內置控制器,因此他們將嘗試在後續寫入操作中寫入內存的不同區域。儘管如此,除非您確定您的特定存儲卡是否具有集成控制器(SD,尤其是沒有集成控制器,但可能還有一些其他機制,它平衡寫道)。

編輯:這裏的解釋記憶磨損和「損耗平衡」更詳細的鏈接: http://en.wikipedia.org/wiki/Flash_memory#Memory_wear

1

我購買了早期的EeePC它使用SD卡作爲「硬盤」的,所以我一直對這方面的討論很感興趣,特別是因爲我有2Gb型號,所以我設置了內部RAM以跨越4GB SD卡。實際的硬數據很難實現,但我能找到的所有知情選項都表明,這在機器的合理使用壽命內不應該是一個問題(當然,我的eeepc已經在ext3文件系統上運行得非常愉快SD卡 - 即大量的活動 - 絕對沒有問題 - 因爲我砍了它)。

意見似乎是現代SD卡應該給你至少10萬個週期,所以我認爲如果你的設備的使用壽命只有幾年,你可以合理地期待沒問題。然而,唯一可行的方法是使用程序對一批樣品卡連續寫入一些測試,並查看它們是否在三個月左右的時間內失敗。我也會直接詢問製造商。