gpt4 book ai didi

linux - 如何找出linux下的空闲物理内存量(在c中)

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

假设我想缓存某些计算,但将其同步到磁盘会导致 I/O 损失,这将完全违背缓存的全部目的。

这意味着,我需要能够找出剩余多少物理 RAM(包括缓存内存,假设我可以将其推出并允许一些松弛以增加缓冲)。我查看了/proc/meminfo 并知道如何读取它。我不太确定如何组合这些数字来获得我想要的。不需要代码,一旦我知道我需要什么,我就可以自己编写代码。

我不会在它需要运行的机器上安装 root,但它应该相当安静。没有大量的磁盘 I/O,没有其他进程突然占用大量内存。操作系统是一个相当新的 linux,开启了过度使用。这需要在不明显触发 OOM killer 的情况下工作。

数字不需要精确到兆字节,我假设它大致在 1 到 7 gib 范围内,具体取决于盒子,但接近 100 mb 会很好。

如果估计偏小,那肯定更好。

最佳答案

Unice 具有标准的 sysconf() 函数(OpenGroups man pageLinux man page)。

利用这个函数,可以得到总的物理内存:

unsigned long long ps = sysconf(_SC_PAGESIZE);
unsigned long long pn = sysconf(_SC_AVPHYS_PAGES);
unsigned long long availMem = ps * pn;

关于linux - 如何找出linux下的空闲物理内存量(在c中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13883606/

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