【问题标题】:If I create a temporary file and modify it very frequently, does this put a burden on the disk?如果我创建一个临时文件并非常频繁地修改它,这会给磁盘带来负担吗?
【发布时间】:2018-07-23 08:51:00
【问题描述】:

我需要写一个可以随时更改的流到文件中,以供其他人在别处读取,但是如果磁盘修改过于频繁,这肯定会损坏磁盘。

据说临时文件会尽可能使用内存而不实际写入磁盘。

但我发现它“似乎”仍在写入磁盘。

谁能回答我的困惑?

【问题讨论】:

  • Hdd/Sdd 有一个 buffer cache(几兆字节),专门为此目的而设计(缓存 热点 - 经常修改数据) superuser.com/questions/309613/…
  • @DmitryBychenko 这表示我不用太担心频繁更换文件流会损坏磁盘?
  • @Dmitry 回答了这个问题,我会赞成...
  • @DmitryBychenko 如果我改用Copy,会很麻烦吧?
  • 您对文件并发有任何问题吗?如果文件经常被用来写东西,你会不会遇到文件被锁定的问题?

标签: c# temporary-files system.io.file


【解决方案1】:

现代 HDD / SDD 有一个 缓冲区缓存(典型大小为几 兆字节),这是针对这个问题专门设计的 : 缓存热点,频繁读取和修改数据。使用内存读取/写入数据比使用 HDD 快得多。 SDD 还有一个问题:写入次数有限,因此我们应该避免过于频繁的写入。在断电的情况下,一个电容器 (或 HDD 磁盘旋转)提供足够的能量来安全地将缓存中的所有数据写回 HDD/SDD。

如果出现Copy 热点热点数据,将(很有可能)保留在缓存中。

简历:请不要重新发明轮子,让硬件制造商自己做,为你解决(非常典型的)问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-08-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-04
    • 1970-01-01
    • 1970-01-01
    • 2013-09-09
    相关资源
    最近更新 更多