我打算编写一个应用程序,尝试尽可能多地写入文件,以免丢失任何大量数据。它将每一个击键写入磁盘,包括微秒甚至纳秒计时。现在这听起来很多,但仍需要相当长的时间才能达到写入 GB 的数据。为了缓解问题,我计划使用输出流将此数据作为更新写入文件末尾,但之后我将立即刷新流。
现在使用 SSD,每次我写入数据时,它通常会在每次执行更新时写入不同的位置。我假设 OS/FS 只是将“扇区”发送到驱动器,并且它无法区分它们只是对文件末尾的更新。因此,这意味着即使更新很小,它肯定会将 SSD 磨损均衡固定在没有尽头的地方。
上述描述是否正确,我是否应该在应用程序中考虑合理的缓冲量?现代文件系统在写入 SSD 之前会缓存多少?或者 SSD 内部的缓冲会起到拯救作用吗?有没有人对这种用法进行过分析?