SD卡使用时存储数据结构

时间:2009-07-31 19:05:43

标签: android sd-card

我已经想出了一个基于磁盘的数据结构来存储传入的实时数据,这不在内存中,因为数组可能会填满并导致jvm崩溃。数据结构和算法工作得很好。我唯一的问题是,这是否会极大地影响SD卡的生命?

我知道sdcards对它们的读写限制有限,但有多少是“有限的”。写入sd卡平均每次会话20分钟会不会影响SD卡,以至于用户看到是这个应用程序杀了它?

3 个答案:

答案 0 :(得分:2)

我以为我记得现代闪存对成千上万的重写有好处。据我所知,读数不受限制。

如果它让您感觉更好,Windows Vista支持名为ReadyBoost的功能,它允许您在USB闪存驱动器上分配缓存空间以提高性能。我认为只要你能够以某种方式完成写作,你应该没事。

此外,一些闪存模块具有集成写入优化的内置控制器,因此他们将尝试在后续写入操作中写入存储器的不同区域。但是,你可能不能指望它,除非你确定你的特定存储卡是否有集成控制器(SD,特别是没有集成控制器,但它可能仍然有一些其他的机制,通过它它平衡了写作。)

编辑:这是一个更详细地解释内存磨损和“磨损均衡”的链接: http://en.wikipedia.org/wiki/Flash_memory#Memory_wear

答案 1 :(得分:2)

卡上的写入次数为100'000秒。这是闪存扇区擦除的数量,可以比磁盘扇区大得多。

我找到了以下带有计算的文档:STEC SMALL CARDS WEAR LEVELING AND LIFETIME CALCULATOR

其中一个例子: 寿命= 2,000,000 x(512MB - 100MB - 128KB)/(50MB x 10 /天)= 4,513年

因此,如果你做了一个合理的设计工作(即不打开/关闭你写的每个字节的文件,因为这可能会强制刷新并因此写入)我甚至不愿意设置非常广泛的测试......

答案 2 :(得分:1)

我购买了早期的eeepc,它使用SD卡作为“硬盘”,因此我一直对此讨论感兴趣,特别是因为我有2Gb型号我设置内部ram跨越到4GB SD卡。真正的硬数据很难得到,但我能找到的所有明智的选项都表明这在机器的合理生命周期内不应该是一个问题(当然,我的eeepc在ext3文件系统上运行得非常愉快SD卡 - 即充足的活动 - 完全没有问题 - 因为我入侵了它。)

意见似乎是现代SD卡应该至少给你10万个周期,所以我认为如果设备的使用寿命只有几年,你可以合理地期望它是好的。但是,您唯一可以确定的方法是设置一些测试,让您的程序连续写入一批样本卡,并查看它们是否在三个月左右的时间内失败。我也会直接询问制造商。