C:存储一个大的“虚拟”阵列

时间:2014-08-25 09:46:06

标签: c

我正在将32位CPU仿真器从python转换为C.

32位地址空间==> 4GB的内存,但这比许多机器可以处理的内存更多。出于这个原因,在Python模拟器中,我使用了一个dict,因为它可以访问整个地址空间,但是一次只能使用一小部分。

在C中,我想保留对整个地址空间的访问(因为基于C的仿真器能够在几秒钟内读取或写入整个地址空间)但保持内存可管理(所以没有4gb数组),并保持高性能(在c中重写模拟器的主要原因)。

我想到的一个解决方案是创建一个分页系统,因此只有少量数组存储在内存中,其余的存储在磁盘上。我怎么能实现这个(我是C的新手),还有更好的解决方案吗?

1 个答案:

答案 0 :(得分:2)

考虑查看mmapmemory-mapped storage