简单的记忆方式< - > C ++ x86的文件缓存?

时间:2013-01-21 04:28:22

标签: file caching memory x86 temp

我努力将现有的x64软件制作成x86版本。

在x64中会花费大约6G~10G的内存,但是在运行x86版本时它会耗费大约1.5G的内存。

我想知道是否有一种简单的方法可以使缓存文件/临时文件在没有太多代码更改的情况下进行一些内存< - >硬盘交换?

谢谢

1 个答案:

答案 0 :(得分:0)

如果它崩溃了,你就有一个错误(或一些)需要修复。

是否可以使代码在32位模式下工作,最大RAM高达2-3G,这在很大程度上取决于代码。你可能会更好地回答这个问题,因为你已经得到了你的代码,而且我们对它应该做什么以及它是如何工作没有丝毫的线索。

一些想法:

  1. 修复内存泄漏
  2. 修复内存碎片
  3. 以较小和/或较少的块处理数据
  4. 将处理重新排序为独立阶段,每个阶段使用更少的内存
  5. 尽可能在各个处理阶段之间共享内存(考虑C / C ++ union),尽量减少未使用的空间和不必要的数据副本
  6. 使用需要更少内存的更智能算法
  7. 可能在运行中压缩和解压缩数据
  8. 将整个程序拆分为几个以利用比PAE
  9. 更大的累积地址空间和更多物理内存而不是4G
  10. 如果它是C ++,您可以通过重载new / delete[] / * / {来尝试“扩展”虚拟地址空间和可用内存量{1}}并在后台管理磁盘I / O的内存。您可以使用内存映射文件或普通文件。这可能会变得难看并且难以正确而快速地完成。
  11. 查找或实施可在32位操作系统或64位->中运行64位应用程序的虚拟化解决方案,该应用程序在32位操作系统之上或与之并行运行。不过,你可能不喜欢速度或障碍。
  12. ...
  13. 祝你好运!