¿Cómo saber cuanta memoria ocupa mi aplicación?

Post Reply
User avatar
AngelSalom
Posts: 727
Joined: Fri Oct 07, 2005 7:38 am
Location: Benicarló (Castellón ) - España
Has thanked: 1 time
Contact:

¿Cómo saber cuanta memoria ocupa mi aplicación?

Post by AngelSalom »

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!
Angel Salom
Visionwin Software - https://www.visionwin.com
------------------------------------------------------------
fwh 19.05 - harbour 3.2 - bcc 7.4
User avatar
Biel EA6DD
Posts: 682
Joined: Tue Feb 14, 2006 9:48 am
Location: Mallorca
Contact:

Re: ¿Cómo saber cuanta memoria ocupa mi aplicación?

Post by Biel EA6DD »

Code: Select all | Expand


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]) / 1024

 
Saludos desde Mallorca
Biel Maimó
http://bielsys.blogspot.com/
User avatar
AngelSalom
Posts: 727
Joined: Fri Oct 07, 2005 7:38 am
Location: Benicarló (Castellón ) - España
Has thanked: 1 time
Contact:

Re: ¿Cómo saber cuanta memoria ocupa mi aplicación?

Post by AngelSalom »

Magnífico Biel, justo lo que necesitaba.
Angel Salom
Visionwin Software - https://www.visionwin.com
------------------------------------------------------------
fwh 19.05 - harbour 3.2 - bcc 7.4
User avatar
karinha
Posts: 7932
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil
Been thanked: 3 times
Contact:

Re: ¿Cómo saber cuanta memoria ocupa mi aplicación?

Post by karinha »

Biel, cual és el comando equivalente en xHarbour de hb_ProgName()? Gracias, saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
Biel EA6DD
Posts: 682
Joined: Tue Feb 14, 2006 9:48 am
Location: Mallorca
Contact:

Re: ¿Cómo saber cuanta memoria ocupa mi aplicación?

Post by Biel EA6DD »

karinha wrote:Biel, cual és el comando equivalente en xHarbour de hb_ProgName()? Gracias, saludos.

Puedes probar hb_ArgV() que creo que existe en xHarbour, o ExeName().
En cualquier caso puedes llamar la función pasandole como parametro el nombre de tu programa.
Saludos desde Mallorca
Biel Maimó
http://bielsys.blogspot.com/
User avatar
karinha
Posts: 7932
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil
Been thanked: 3 times
Contact:

Re: ¿Cómo saber cuanta memoria ocupa mi aplicación?

Post by karinha »

Gracias Biel, perfecto.

Code: Select all | Expand


#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]) / 1024
 


João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
Posts: 7932
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil
Been thanked: 3 times
Contact:

Re: ¿Cómo saber cuanta memoria ocupa mi aplicación?

Post by karinha »

Biel, una duda: el resultado és en: Bytes, Mega Bytes? Ó Giga Bytes? gracias, saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
Biel EA6DD
Posts: 682
Joined: Tue Feb 14, 2006 9:48 am
Location: Mallorca
Contact:

Re: ¿Cómo saber cuanta memoria ocupa mi aplicación?

Post by Biel EA6DD »

karinha wrote:Biel, una duda: el resultado és en: Bytes, Mega Bytes? Ó Giga Bytes? gracias, saludos.

El resultado se expresa en KB, pero puedes ajustar el retorno a la unidad que desees, simplemente cambiando divisior.

Code: Select all | Expand


...
Val(aList[1,2]) / 1024 //
 
Saludos desde Mallorca
Biel Maimó
http://bielsys.blogspot.com/
User avatar
juan_arroyo_t
Posts: 196
Joined: Fri May 15, 2009 1:25 am
Location: Cuautitlán, Mexico

Re: ¿Cómo saber cuanta memoria ocupa mi aplicación?

Post by juan_arroyo_t »

oList := oWmi:ExecQuery( "select * from Win32_PerfRawData_PerfProc_Process WHERE name='"+cName+"'")
Por favor

Como puedo utilizar este codigo si uso dbf's ?

Muchas gracias
Juan Arroyo
México
FWH 7.12 VERCE 5.3 xHarbour 1.1.0
juan_arroyo_t@hotmail.com
User avatar
cnavarro
Posts: 6557
Joined: Wed Feb 15, 2012 8:25 pm
Location: España
Been thanked: 3 times

Re: ¿Cómo saber cuanta memoria ocupa mi aplicación?

Post by cnavarro »

Eso no tiene nada que ver con el RDD que utilices
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
juan_arroyo_t
Posts: 196
Joined: Fri May 15, 2009 1:25 am
Location: Cuautitlán, Mexico

Re: ¿Cómo saber cuanta memoria ocupa mi aplicación?

Post by juan_arroyo_t »

Muchas gracias Cristobal

Funciona perfecto

Saludos
Juan Arroyo
México
FWH 7.12 VERCE 5.3 xHarbour 1.1.0
juan_arroyo_t@hotmail.com
Post Reply