【发布时间】:2014-09-05 04:26:33
【问题描述】:
我需要开发一个应用程序来读取包含俄罗斯高速公路图的文件。根据文件的内容,应用程序必须检测两个指定城镇之间的最短路径。应用程序必须用 C++ 中的非托管代码编写。我需要在 MS VS 2013 中将此应用程序开发为没有 MFC 支持的 C++ 控制台应用程序。客户计算机上装有 Windows 7 操作系统。作为搜索引擎 - 必须使用“A*”算法。我的问题如下。包含高速公路图的文件大小为 25GB,但客户计算机上的 RAM 容量仅为 16GB,没有机会扩展它。在这种情况下,我可以使用非托管 C++ 的任何编程技术来处理大文件吗?我想到了读取文件的大小大于计算机上的 RAM 容量的情况。在这种情况下,我应该以何种方式设计应用架构?
【问题讨论】:
-
只要是 64 位操作系统上的 64 位程序,就可以了。虚拟内存将自动启动。虽然性能会很慢。理想情况下,您会将问题分解为子问题,这些子问题都将单独使用更少的内存。
-
您的 25 GB 文件包含的信息可能比计算 A 和 B 之间最短路径所需的信息多得多。也许在读取该文件时简化该文件中的信息是一种选择。
-
你总是可以设计一个垃圾收集的块管理器,它会按需流入块,虚拟化你的文件访问,并且在一段时间不被访问后,块将被取消分配......
-
各位,我的客户有一台带有 32 位操作系统的 32 位计算机。请原谅我,但我忘了在问题中写下这个细节。
-
谁能告诉我如果我为 MapViewOfFile() 的第 3、第 4 和第 5 参数分配 0 的值以获得 25GB 文件的完整保护,所以可以使用保护in application会很慢吗?
标签: c++ windows unmanaged filesize