gpt4 book ai didi

c++ - AIX 中的编程内存监视

转载 作者:太空狗 更新时间:2023-10-29 21:49:12 25 4
gpt4 key购买 nike

谁能推荐可用于以编程方式检查内存使用情况的 AIX 系统调用?我正在使用一个大型多线程 C++ 应用程序,该应用程序当前由于存在大量无限的内存缓存而内存不足(在 AIX 6.1 上使用 32 位大内存模型)。我当然可以限制缓存的增长,但是由于它们的结构复杂,很难计算出它们有多大;更好的 IMO 只是评估进程占用了多少内存并基于此限制。

由于使用了共享内存,使用超大内存模型是不可能的,而且在短期内转向 64 位也不可行。

最佳答案

对于 AIX,我发现以下在我的应用程序中运行良好:

#include <unistd.h>
#include <sys/types.h>
#include <sys/resource.h>

// total physical memory (in bytes)
size_t total_memory = sysconf(_SC_AIX_REALMEM) * 1024;

// maximum resident set of the process
struct rusage usage;
getrusage(RUSAGE_SELF, &usage);
size_t used_memory = (usage.ru_maxrss)*1024);

我相信使用 vminfo (/usr/include/sys/vminfo.h) 你应该能够获得系统范围内使用的内存。

关于c++ - AIX 中的编程内存监视,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8785469/

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