gpt4 book ai didi

c++ - 使用硬盘进行快速访问取代 RAM

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:35:57 26 4
gpt4 key购买 nike

我一直在具有高内存(128GB RAM)的机器上运行内存密集型 C++ Linux 应用程序。该应用程序预先预留了大约 20GB 的内存,以便稍后将其用作缓冲区。我希望将此应用程序移植到某种 SBC,例如 Raspberry Pi,在那里我几乎没有可用的内存(与通常情况相比)。我在这里的思考过程是使用 HDD(可能是 SDD)而不是 RAM 来分配 20GB 内存。有没有更有效的方法来做到这一点?此外,在这种方法中,我的实现应该是什么:只是二进制文件还是其他什么?

编辑:我可以将内存分配减少到 2GB 之类的。不过,我在 RPi 中没有那种可用的内存。由于整个项目是将其移植到SBC,因此我需要仅用硬盘空间来解决它。

最佳答案

我会首先考虑使用 mmap 来映射文件,就像交换一样。

然后,rpi 使用 32 位 ARM,这意味着你不能同时拥有所有 20GB 地址,因此你需要某种内存覆盖方法:

  1. 您的程序明确请求您的“内存 Controller ”在区域上换入/换出。
  2. 您采用锁定缓冲区等模式(类似于 Direct3D 所做的),并让“内存 Controller ”管理和执行交换。

归根结底,rpi 不适合这项工作,你需要投入高昂的开发成本,而不是简单地选择一台便宜的 PC。

关于c++ - 使用硬盘进行快速访问取代 RAM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32009140/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com