Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/200.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android SD卡在使用它存储数据结构时的使用寿命_Android_Sd Card - Fatal编程技术网

Android SD卡在使用它存储数据结构时的使用寿命

Android SD卡在使用它存储数据结构时的使用寿命,android,sd-card,Android,Sd Card,我已经提出了一种基于磁盘的数据结构来存储传入的实时数据,它不在内存中,因为数组可能会填满并导致jvm崩溃。数据结构和算法非常有效。我唯一的问题是,这会极大地影响SD卡的使用寿命吗 我知道SD卡的读写能力有限,但多少是“有限的”。在sd卡上写东西,比如说每次平均20分钟,会不会对sd卡产生很大的影响,以至于用户看到是这个应用程序杀死了它?我想我记得现代闪存可以进行数十万次重写。据我所知,读取的数量是没有限制的 如果它能让你感觉更好的话,Windows Vista支持一种叫做ReadyBoost的功

我已经提出了一种基于磁盘的数据结构来存储传入的实时数据,它不在内存中,因为数组可能会填满并导致jvm崩溃。数据结构和算法非常有效。我唯一的问题是,这会极大地影响SD卡的使用寿命吗


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

我想我记得现代闪存可以进行数十万次重写。据我所知,读取的数量是没有限制的

如果它能让你感觉更好的话,Windows Vista支持一种叫做ReadyBoost的功能,它允许你在USB闪存驱动器上分配缓存空间以提高性能。我想只要你能设法把笔迹弄平,你就会没事的

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

编辑:这里有一个链接更详细地解释了内存损耗和“损耗均衡”:

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


人们的观点似乎是,现代SD卡至少应该给你100000次循环,所以我认为如果你的设备寿命只有几年,你可以合理地预期它会很好。然而,您唯一能确保的方法是设置一些测试,让您的程序连续写入一批样本卡,并查看它们是否在三个月左右的时间内失败。我也会直接询问制造商。

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

我找到了以下带有计算的文档:

其中一个例子是: 寿命=2000000 x(512MB–100MB–128KB)/(50MB x 10/天)=4513年


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

取决于在这20分钟内写入了多少数据。虽然它在测试零售USB“pendrive”,而不是SD媒体,以下文章中的信息可能会让你感兴趣(即使只是测试方法):@Rob、Michael、Spencer和Cruachan即使我知道没有“最佳答案”,你所有的答案都可能是这个问题的最佳答案。我希望有多个答案的支持,我会同意克鲁坎的建议,用数据结构测试多张卡片。你需要与统计学家核实,但我认为你可以从数量相当少的卡片中得到相当好的数字。例如,如果您测试了10张卡,并且在连续三个月的读/写操作中没有一张卡出现故障,那么您将能够在已知的置信度下得出故障率的实际上限。我也不明白为什么如果你给自己买了一批USB/SD卡读卡器,你就不能在PC上设置好几个,然后运行多个定制程序副本,不断地编写数据结构。引用的值是可以的,但没有什么比测试自己更好。哇,非常感谢。帮我省了点钱:)。非常感谢!