gpt4 book ai didi

c - 如何有选择地将内存放入交换区? (Linux)

转载 作者:可可西里 更新时间:2023-11-01 11:46:08 24 4
gpt4 key购买 nike

如果内存已分配并且已知它(几乎肯定/可能)不会长时间使用,则更积极地标记此内存可能会很有用移入交换空间。

有什么命令可以告诉内核吗?

如果做不到这一点,最好将它们转储到临时文件中,但我很好奇发送到交换(或类似的东西)的能力。


当然,如果没有交换空间,这将无济于事,在这种情况下,写入临时文件可能会更好。

最佳答案

您可以使用 madvise 调用来告诉内核您将来可能对内存执行的操作。例如:

madvise(base, length, MADV_SOFT_OFFLINE);

告诉内核您很快就不需要有问题的内存,因此可以将其刷新到后备存储(或者如果它是从文件映射且未更改,则直接删除)。

还有 MADV_DONTNEED 允许内核删除内容,即使已修改(因此当您下次访问内存时,如果您这样做,它可能会被清零或从原始映射文件重新读取)。

关于c - 如何有选择地将内存放入交换区? (Linux),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24347987/

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