【问题标题】:Is it better to write data to a file in real time, or at program shutdown?将数据实时写入文件还是在程序关闭时更好?
【发布时间】:2014-12-11 15:43:53
【问题描述】:

我正在开发 MMORPG,只是想听听将信息(在本例中为游戏日志)存储到文件之间的两个不同论点。

将信息创建到文件中时输出会更好吗(我们可能每隔几秒钟谈论 10-30 个条目,或者将其存储在内存中直到程序关闭,然后转储所有信息在它终止之前放入一个文件中。

我可以看到两端的争论主要是如果我们将它保存在内存中,它将开始占用计算机端的大量资源,如果我们等到程序关闭以及程序关闭的任何原因由于崩溃而崩溃并且信息没有保存,从 MMORPG 的角度来看,这将是非常糟糕的......另一方面,我确信每次写入文件通常也不是很有效。 ..

我在 C++ 中完成所有这些操作。

【问题讨论】:

  • 如果您的程序崩溃,您会丢失日志。这可能是你转储信息的唯一地方,告诉你它为什么崩溃......
  • 别担心。无论如何,操作系统都会在内存中缓冲您的大部分写入(除非您正在同步磁盘),因此“每隔几秒”您的 20-30 次写入不会对盘片造成重大负担。除非并且直到您真正观察到问题,否则您不应该担心磁盘写入的效率。尽快将数据写入磁盘。

标签: c++ file file-io


【解决方案1】:

缓存一些日志消息可能是有意义的,但将其全部存储到关机是不行的。

首先,MMO 往往会运行数小时,而在游戏中你没有那种内存可以浪费。

其次,更重要的是,日志对于调试很重要。如果您的游戏崩溃,您需要这些日志。如果您将它们缓存在内存中并且您的游戏崩溃了,它们就消失了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多