|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Member
Iscritto dal: Mar 2008
Messaggi: 74
|
[C/C++] Occupazione della memoria di un'applicazione
Egregi,
il quesito è questo: come posso fare per ottenere lo stato di occupazione della memoria di un'applicazione? Ovvero, mentre sto eseguendo l'applicazione vorrei sapere in un certo istante quanta memoria ha allocato; questo anche per capire se ho dei leak da qualche parte. Ho provato a dare un'occhiata alle API, ma ho trovato solo GlobalMemoryStatus, che mi da uno snapshot della memoria dell'intero sistema. Grazie a tutti, TT. |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
|
Ma è un'informazione che ti serve all'interno dell'applicazione? Se vuoi solo individuare i memory leak, puoi affidarti a vari tool (memcheck per esempio) quali Valgrind su sistemi UNIX e Purify per Windows.
__________________
C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai! |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Oct 2006
Città: Roma
Messaggi: 1383
|
dovresti specificare se intendi conoscere solo la dimensione di commit o anche quella di reserve; inoltre immagino che non ti interessi conoscere la dimensione del non-paged pool.
ipotizzo due maniere di ottenere ció che vuoi: 1) enumera tutte le pagine con VirtualQuery; 2) chiama GetProcessMemoryInfo e leggi il campo QuotaPagedPoolUsage della struttura. potrebbe esserci qualche altra maniera a me sconosciuta. |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 15:34.