1

我有一个关于桌面应用程序的一般性问题。我和我的朋友正在讨论如何在应用程序运行时管理应用程序数据。我们就两种方法争论不休,无法得出结论。这两种方法是:

  1. 需要时读取数据,一旦发生变化就将数据写入磁盘。
  2. 应用程序启动时将所有应用程序数据加载到内存中,在内存中进行修改,最后在应用程序关闭时写入磁盘。

据我了解,主要论点是:

  1. #2 更快,因为所有数据都在内存中并且可以快速访问。
  2. #2 更好,因为它使用最少的文件 IO,据我所知,这被认为是一个缓慢而昂贵的操作。
  3. #1 更好,因为所有数据始终与磁盘同步,因此在程序异常终止时数据丢失的可能性有限。
  4. #1 更好,因为应用程序不会占用太多内存。

编辑:我们讨论的具体应用是一个课程管理系统,它涉及 4 个主要方面:管理员、教师、课程和学生。以上所有内容的数据都存储在磁盘上的文件中。基本上,该应用程序主要是数据驱动的。

4

2 回答 2

1

尽可能/希望将数据保存在内存中(如果您的应用程序仅使用部分数据,则加载未使用的部分将浪费 RAM),并在更改后立即写入/刷新更改(或在后台异步经过一段时间的不活动延迟后线程)。

如果您使用的平台支持内存映射文件,请查看它们。MMF 让您可以非常有效地结合这两种方法。

于 2011-02-12T09:41:37.220 回答
0

对我来说2更好。一般规则是更少的 I/O 调用 = 快速程序。

但是我们不能将所有内容都加载到内存中。

这个问题的答案取决于应用对应用和条件对条件。

如果你能提供更多细节就更好了。

于 2011-02-12T09:04:36.840 回答