2013-04-05 2 views
2

ли C++ есть метод, как и в Javaполучить полную и свободную память в C++

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++?

+0

Зачем вам нужно знать? Будет ли использование профайлера профайла выполнять эту работу или у вас есть какие-то решения времени выполнения, основанные на этой информации? –

+0

Есть некоторые эффективные инструменты управления памятью для C++, такие как Valgring (только для Linux). – lucasg

+0

также, это в значительной степени описано здесь: http://stackoverflow.com/questions/63166/how-to-determine-cpu-and-memory-consumption-from-inside-a-process –

ответ

2

Его не указано в стандарте C++, под Windows вам необходимо использовать WinAPI For example this, а под Linux вам нужно использовать библиотеку или вызвать системные вызовы.

+0

Меня интересует версия Linux, не могли бы вы дать мне ссылку на библиотеки и syscalls? –