gpt4 book ai didi

c++ - 动态内存分配/利用未使用的内存

转载 作者:太空宇宙 更新时间:2023-11-04 04:49:52 25 4
gpt4 key购买 nike

我要编写一个动态需要大量内存的应用程序。大部分内存用于缓存目的,仅用于加速。这些部分实际上可以按需释放。

不幸的是,如果内存不足,我的内核将终止进程。但它可以简单地释放内存。所以我想要的与 linux 页面缓存非常相似解释 here .是否有可能以方便的方式在用户空间中实现此类行为?

我正在考虑使用存储在具有内存映射文件 IO 的 ramfs/tmpfs 上的“缓存文件”来实现这样的缓存,但我敢肯定,有一种更舒适的方法。

提前致谢!

最佳答案

是的,这应该是可能的。大多数内核都有一个内存分配方法,进程在该方法中休眠直到它获得请求的内存。 (我使用过的所有内核都有)。如果您没有,这可能是实现一个的好时机。您可以查看 linux 中的 kmem 函数。然而,这是一种被动的方式来做你所要求的。该过程将一直等待,直到其他人释放内存。如果你想在没有内存时从你自己的进程地址空间释放内存,这可以从用户空间轻松完成。您需要保留已分配内存的日志,并在分配失败时按需释放不需要的内存。

关于c++ - 动态内存分配/利用未使用的内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16641932/

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