首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用SD-Card存储数据结构时的寿命

使用SD-Card存储数据结构时的寿命
EN

Stack Overflow用户
提问于 2009-07-31 19:05:43
回答 3查看 2.5K关注 0票数 2

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

我知道SD卡的读写能力有限,但到底有多少才是“有限的”。对SD卡的写入,比如说平均每个会话20分钟,会不会对SD卡产生很大的影响,以至于用户看到是这个应用程序杀死了SD卡?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-08-04 14:36:33

卡上的写入次数是100‘00s。这是闪存扇区擦除的数量,它可能比磁盘扇区大得多。

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

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

因此,如果你做了一个合理的设计工作(即不要打开/关闭你写的每个字节的文件,因为这可能会强制刷新,从而写入),我甚至不会费心建立非常广泛的测试……

票数 2
EN

Stack Overflow用户

发布于 2009-07-31 19:32:36

我想我记得现代的闪存适用于数十万次重写。据我所知,读取的次数是没有限制的。

如果这能让你感觉更好,Windows Vista支持一项名为ReadyBoost的功能,该功能允许你在U盘上分配缓存空间,以提高性能。我认为只要你设法平衡写操作,你就会好起来的。

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

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

票数 2
EN

Stack Overflow用户

发布于 2009-07-31 19:38:19

我购买了早期的eeepc,它使用SD卡作为‘硬盘’,所以我对这方面的讨论很感兴趣,特别是因为我有2 2Gb的型号,所以我将内部ram设置为跨越4 2Gb的SD卡。很难得到真正的硬数据,但我能找到的所有知情选项都表明,在机器的合理生命周期内,这应该不是问题(当然,我的eeepc在SD卡上的ext3文件系统上运行得相当愉快--也就是说,自从我黑了它以来,它完全没有问题)。

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1214293

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档