PDA

Ver la Versión Completa : Usos de la cpu


proyectocorba
22-09-2003, 13:12:20
Hola a todos!!!

Estoy haciendo un programilla y necesito saber los usos de la cpu, la memoria que estoy utilizando..etc (to lo q pone windows en rendimiento). La verdad es que creo q se hace con la api de windows pero no lo se exactamente. He estado mirando las funciones pero no encuentro ninguna relacionada. Si alguien me puede echar una mano.

Asias.

Investment
22-09-2003, 13:35:54
Truco 154 de TRUCOMANIA:

INFORMACION DE RECURSOS DEL SISTEMA

-Pon un TMemo (Memo1) y un TButton (Button1) en tu form
-Pon éste código en el OnCLick de Button1:



procedure TForm1.Button1Click(Sender: TObject);
var
MemoryStatus: TMemoryStatus;

begin

Memo1.Lines.Clear;

MemoryStatus.dwLength := SizeOf(MemoryStatus);

GlobalMemoryStatus(MemoryStatus);

with MemoryStatus do
begin
{ Size of MemoryStatus record }
Memo1.Lines.Add(IntToStr(dwLength) +
' Size of ''MemoryStatus'' record');
{ Per-Cent of Memory in use by your system }
Memo1.Lines.Add(IntToStr(dwMemoryLoad) +
'% memory in use');
{The amount of Total Physical memory allocated to your system.}
Memo1.Lines.Add(IntToStr(dwTotalPhys) +
' Total Physical Memory in bytes');
{ The amount available of physical memory in your system. }
Memo1.Lines.Add(IntToStr(dwAvailPhys) +
' Available Physical Memory in bytes');
{ The amount of Total Bytes allocated to your page file }
Memo1.Lines.Add(IntToStr(dwTotalPageFile) +
' Total Bytes of Paging File');
{ The amount of available bytes in your page file }
Memo1.Lines.Add(IntToStr(dwAvailPageFile) +
' Available bytes in paging file');
{ The amount of Total bytes allocated to this program
(generally 2 gigabytes of virtual space) }
Memo1.Lines.Add(IntToStr(dwTotalVirtual) +
' User Bytes of Address space');
{ The amount of avalable bytes that is left to your program to use }
Memo1.Lines.Add(IntToStr(dwAvailVirtual) +
' Available User bytes of address space');
end;
end;

proyectocorba
22-09-2003, 14:17:01
Gracias Investment por contestarme tan rapido. Voy a probarlo ahora mismo a ver si funciona. Lo quiero hacer en C, pero me imagino que las funciones seran las mismas.

Asias.

delphi.com.ar
22-09-2003, 16:20:05
La función GlobalMemoryStatus es una WinApi que va a tener la misma funcionalidad sobre cualquier lenguaje windows en que se la utilice.

Saludos!

proyectocorba
22-09-2003, 17:48:04
Gracias a los dos!!!:D

Ya he terminado la funcion y aunque he tenido que hacer los arreglillos para pasarlo a C, la idea es la misma.

Asias.

proyectocorba
22-09-2003, 19:13:54
He estado viendo la funcion y me he dado cuenta que esta todo relacionado con la memoria pero no puedo poner cosas como uso de la cpu o recursos libres, etc. No hay otra funcion que indique esta serie de cosas?

Asias,

Lmas
23-09-2003, 13:43:05
Hola.

En http://www.torry.net/samples_hard.htm puedes encontrar en un ejemplo del uso de la CPU en AdCPUUsage, o por lo menos eso parece indicar el nombre del archivo ;).

SalU2

DarkByte
16-06-2004, 13:33:00
Perdon por rehabilitar este hilo, pero estoy haciendo lo que quería hacer nuestro amigo Andrés, la colección de los hilos, y pensé que estaría mejor que estubiese el código identado.


//-Pon un TMemo (Memo1) y un TButton (Button1) en tu form
//-Pon éste código en el OnCLick de Button1:

procedure TForm1.Button1Click(Sender: TObject);
var
MemoryStatus: TMemoryStatus;

begin

Memo1.Lines.Clear;

MemoryStatus.dwLength := SizeOf(MemoryStatus);

GlobalMemoryStatus(MemoryStatus);

with MemoryStatus do
begin
{ Size of MemoryStatus record }
Memo1.Lines.Add(IntToStr(dwLength) +
' Size of ''MemoryStatus'' record');
{ Per-Cent of Memory in use by your system }
Memo1.Lines.Add(IntToStr(dwMemoryLoad) +
'% memory in use');
{The amount of Total Physical memory allocated to your system.}
Memo1.Lines.Add(IntToStr(dwTotalPhys) +
' Total Physical Memory in bytes');
{ The amount available of physical memory in your system. }
Memo1.Lines.Add(IntToStr(dwAvailPhys) +
' Available Physical Memory in bytes');
{ The amount of Total Bytes allocated to your page file }
Memo1.Lines.Add(IntToStr(dwTotalPageFile) +
' Total Bytes of Paging File');
{ The amount of available bytes in your page file }
Memo1.Lines.Add(IntToStr(dwAvailPageFile) +
' Available bytes in paging file');
{ The amount of Total bytes allocated to this program
(generally 2 gigabytes of virtual space) }
Memo1.Lines.Add(IntToStr(dwTotalVirtual) +
' User Bytes of Address space');
{ The amount of avalable bytes that is left to your program to use }
Memo1.Lines.Add(IntToStr(dwAvailVirtual) +
' Available User bytes of address space');
end;
end;

jeansalas19
03-11-2006, 06:58:29
:confused: y no hay ninguno de estos q se pueda hacer en Java, esq necesito hacer un programa q me este informando de la memoria q usa mi programa en la RAM me preguntaba si alguien sabia... grxx :o ojala me respondan!