将百万次写入文件,破坏我的硬盘?

时间:2012-12-28 09:42:08

标签: c file io storage disk

我有一个IO密集型仿真程序,它可以在每次迭代时将仿真跟踪/数据记录到文件中。由于模拟运行超过数百万次迭代并将数据记录到磁盘中的文件(每次都覆盖文件),我很想知道这是否会破坏硬盘,因为大多数存储磁盘都有上限写入/擦除周期(例如,闪存盘允许多达100,000次写入/擦除周期)。将文件拆分为多个文件会是更好的选择吗?

2 个答案:

答案 0 :(得分:5)

您需要认识到,对单个文件的一百万次写入调用可能只会写入磁盘的每个块一次,这不会对磁盘​​或SSD设备造成任何损害。如果你覆盖文件的第一个块一百万次,你就会冒更大的磨损风险,但有很多缓解因素。首先,如果它是一个程序的单次运行,o / s可能会将磁盘映像保留在内存中,而不会在此期间将磁盘写入磁盘 - 除非您使用的是日志文件系统。如果它是一个记录文件系统,那么实际的写作将分布在许多不同的块上。

如果你设法在磁力旋转硬盘上写入相同的块数百万次,那么你仍然没有将磁盘丢弃的严重风险。

谷歌搜索“硬盘写周期”显示了很多信息性文章(更具体地说,可能是关于SSD),相关搜索也可以帮助你。

答案 1 :(得分:1)

在SSD上,对任何特定块的写入量(或更准确的擦除周期)都是有限的。对于任何给定的块,它可能超过100K到100万,并且SSD使用“磨损加载”来避免每次都对同一块进行不必要的“写入”。 SSD只能写入零,因此当您将某个位“重置”为1时,您必须擦除整个块。 [人们可以把逆变器放在电池上,反之亦然,但你得到一个或另一个,所以它没有多大帮助]。

真正的硬盘更像是一种机械设备,所以没有多少次你写到同一个地方有多少次,更多的是头部动作。

我不会太担心它。写一个文件应该没问题,无论你有一个文件还是多个文件都没有什么结果。

相关问题