在C++中获取总内存和空闲内存

3
C++中是否有类似Java的方法?
Runtime.getRuntime().totalMemory()
Runtime.getRuntime().freeMemory()

我正在以这种方式使用
long mem0 = Runtime.getRuntime().totalMemory() - Runtime.getRuntime().freeMemory();
/*
stuff to do
*/ 
long mem1 = Runtime.getRuntime().totalMemory() - Runtime.getRuntime().freeMemory();              
System.out.println(mem1-mem0);

查找程序使用的内存。C++中是否有相似的函数?


有一些高效的C++内存管理工具,例如Valgrind(仅限Linux)。 - lucasg
此外,这个问题已经在这里得到了很好的解答:https://dev59.com/qnVD5IYBdhLWcg3wKoWH - Andreas Grapentin
例如,glibc(可用于几个平台的c库之一)确实包括非标准扩展,允许提取内存统计信息。我只是反对“C ++在其标准库中没有您需要的功能”,因为这对于标准来说是正确的,但不适用于库。略有不同,但我认为是相关的。 - Andreas Grapentin
1
@AndreasGrapentin 是库的一部分,但不是标准库的一部分。在其他方面,你是正确的,SL和STL是不同的实体。 - dtech
@ddriver 好的,那我们就各自保留意见吧 :) 祝你成功! - Andreas Grapentin
显示剩余9条评论
1个回答

2

在C++标准中没有明确规定,在Windows下需要使用WinAPI,例如这个,在Linux下需要使用库或调用系统调用。


1
我对Linux版本很感兴趣,你能给我提供一些库和系统调用的链接吗? - Aidos Askhatuly

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接