如何在应用程序运行时管理应用程序数据? (频繁的IO与更多的内存使用量)

我有一个关于桌面应用程序的一般问题。我和我的朋友正在讨论应用程序运行时应如何管理应用程序数据。我们争论了两种方法,无法得出结论。这两种方法是: 在需要时读取数据,一旦更改,就将数据写入磁盘。 在应用程序启动时将所有应用程序数据加载到内存中,在内存中修改它,最后在应用程序关闭时写入磁盘。 据我了解,主要论点是: #2更快,因为所有数据都在内存中并且可以快速访问。 #2更好,因为它使用最小的文件IO,据我所知,这被认为是一个缓慢且昂贵的操作。 #1更好,因为所有数据始终与磁盘同步,因此异常程序终止时数据丢失的可能性有限。 #1更好,因为应用程序不会占用太多内存。 编辑:我们讨论的具体应用是一个课程管理系统,涉及4个主要方面:管理员,教师,课程和学生。上述所有内容的数据都存储在磁盘上的文件中。基本上,应用程序主要是数据驱动的。     
已邀请:
在可能/期望的情况下将数据保存在内存中(如果您的应用程序仅使用部分数据,则加载未使用的部分将浪费RAM),并在更改后立即写入/刷新更改(或在后台异步)线程经过一段时间的不活动延迟)。 如果您使用的平台支持内存映射文件,请查看它们。 MMF可以让您非常有效地结合这两种方法。     
对我来说2更好。通用规则是减少I / O调用=快速程序。 但我们无法将所有内容加载到内存中。 这个问题的回答取决于对申请的申请和条件的条件。 如果您能提供更多细节,那就更好了     

要回复问题请先登录注册