Hola amigos, como ando peleado con los recursos, liberaci贸n de memoria, etc, etc,etc ... me vendr铆a genial saber cu谩nto memoria est谩 utilizando mi aplicaci贸n (desde la misma aplicaci贸n, claro).
驴Alguna funci贸n que me informe de esto?
Gracias!
Hola amigos, como ando peleado con los recursos, liberaci贸n de memoria, etc, etc,etc ... me vendr铆a genial saber cu谩nto memoria est谩 utilizando mi aplicaci贸n (desde la misma aplicaci贸n, claro).
驴Alguna funci贸n que me informe de esto?
Gracias!
FUNCTION Main()
? WorkingSetPrivate()
RETURN NIL
//-----------------------------------------------------------------------------
FUNCTION WorkingSetPrivate(cName)
/*Biel Maimo 2016*/
LOCAL oLocator,oWmi,oList, oProc
LOCAL aList:={}
IF cName==NIL
cName := SubStr(hb_ProgName(),Len( cFilePath( HB_ProgName() ))+1)
cName := Left(cName,Len(cName)-4)
ENDIF
//--
oLocator := CreateObject( "wbemScripting.SwbemLocator" )
oWMI := oLocator:ConnectServer()
oList := oWmi:ExecQuery( "select * from Win32_PerfRawData_PerfProc_Process WHERE name='"+cName+"'")
FOR EACH oProc IN oList
AAdd( aList, { oProc:Name,oProc:WorkingSetPrivate} )
NEXT
RETURN Val(aList[1,2]) / 1024Magn铆fico Biel, justo lo que necesitaba.
Biel, cual 茅s el comando equivalente en xHarbour de hb_ProgName()? Gracias, saludos.
karinha wrote:Biel, cual 茅s el comando equivalente en xHarbour de hb_ProgName()? Gracias, saludos.
#include "FiveWin.ch"
FUNCTION Main()
? WorkingSetPrivate()
RETURN NIL
//-----------------------------------------------------------------------------
FUNCTION WorkingSetPrivate(cName)
/*Biel Maimo 2016*/
LOCAL oLocator,oWmi,oList, oProc
LOCAL aList:={}
IF cName==NIL
#IFDEF __XHARBOUR__ // Qual e o equivalente em xHarbour?
cName := SubStr(HB_ARGV( 0 ),Len( cFilePath( HB_ARGV( 0 ) ))+1)
cName := Left(cName,Len(cName)-4)
#ELSE
cName := SubStr(hb_ProgName(),Len( cFilePath( HB_ProgName() ))+1)
cName := Left(cName,Len(cName)-4)
#ENDIF
ENDIF
//--
oLocator := CreateObject( "wbemScripting.SwbemLocator" )
oWMI := oLocator:ConnectServer()
oList := oWmi:ExecQuery( "select * from Win32_PerfRawData_PerfProc_Process WHERE name='"+cName+"'")
FOR EACH oProc IN oList
AAdd( aList, { oProc:Name,oProc:WorkingSetPrivate} )
NEXT
RETURN Val(aList[1,2]) / 1024Biel, una duda: el resultado 茅s en: Bytes, Mega Bytes? 脫 Giga Bytes? gracias, saludos.
karinha wrote:Biel, una duda: el resultado 茅s en: Bytes, Mega Bytes? 脫 Giga Bytes? gracias, saludos.
...
Val(aList[1,2]) / 1024 //oList := oWmi:ExecQuery( "select * from Win32_PerfRawData_PerfProc_Process WHERE name='"+cName+"'")Por favor
Eso no tiene nada que ver con el RDD que utilices
Muchas gracias Cristobal
Funciona perfecto
Saludos