我需要形成这个matrix的一个副本,然后原来可以换出到磁盘,稍后加载。 这个matrix的内容是重要的。 最初的计算是昂贵的,所以你不能轻易把它扔掉,重新创build它。 把matrix放到磁盘上,然后从磁盘上重新加载,比从头开始重新计算要快。
有没有更容易或更好的方式来指定一段内存暂时放在磁盘上,直到下一次访问比我有,这是:
当资源(2GBmatrix)不需要时
将文件写入磁盘
释放内存
何时需要资源
打开文件
阅读matrix
我遇到文件映射但我不知道这是正确的使用
CreateFileMapping()用于写入文件长度未知的文本
mmap成功后总线错误
linux – 映射文件的非线性部分
看看内存映射文件 。
内存映射文件(MMF)提供了独特的内存管理功能,允许应用程序以访问动态内存的相同方式访问磁盘上的文件(通过指针)。
操作系统将非常有效地将部分原始矩阵交换到磁盘。
假设矩阵不需要在程序重新启动后仍然存在,请将您的应用程序编译为64位,并将矩阵留在内存中。 在内存压力下,操作系统将自动换出使用最少的内存页面。
然而,即使在一个现代化的硬件上,你也将拥有超过2 + 2 GB的内存,而且很可能所有内存都会留在内存中。
1原始矩阵+复制。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。