SoloCodigo

Programación General => C/C++ => C++ Builder => Mensaje iniciado por: Beldwir en Domingo 26 de Septiembre de 2004, 17:54

Título: Velocidad Procesador
Publicado por: Beldwir en Domingo 26 de Septiembre de 2004, 17:54
Alguien sabe de alguna función o estructura que devuelva la velocidad del reloj del procesador en Mhz.?

            Gracias.
Título: Re: Velocidad Procesador
Publicado por: _Viktor en Domingo 26 de Septiembre de 2004, 19:21
Hola.. a ver si esto que tenia por ahi te sirve.

Código: Text
  1. int GetCycleCount()
  2. {
  3.   asm{
  4.           DB 0FH
  5.           DB 031H
  6.         }
  7. }
  8.  
  9. void __fastcall TFPrinc::Button1Click(TObject *Sender)
  10. {
  11.   int Start, Stop;
  12.   Start = GetCycleCount();
  13.   Sleep(1000);  Stop = GetCycleCount();
  14.   Label1->Caption = ( (Stop-Start) / 1000141);
  15. }
  16.  

Saludos!
Título: Re: Velocidad Procesador
Publicado por: Beldwir en Domingo 26 de Septiembre de 2004, 22:14
Muchas gracias _Viktor, pero me devuelve un valor negativo (-15xx);
se aproxima a la velocidad del procesador cuando reduzco el valor de sleep() a 95, entonces devuelve 288. La velocidad de mi procesador es de 2.8Ghz.

   Seguiré intentándolo, de esta y de otras maneras, me trae de cabeza!!

   Saludos!
Título: Re: Velocidad Procesador
Publicado por: Beldwir en Domingo 26 de Septiembre de 2004, 23:09
Hola, nuevo problema. Utilizando esta estructura:

typedef struct _PROCESSOR_POWER_INFORMATION {
   ULONG Number;
   ULONG MaxMhz;
   ULONG CurrentMhz;
   ULONG MhzLimit;
   ULONG MaxIdleState;
   ULONG CurrentIdleState;
} PROCESSOR_POWER_INFORMATION,
*PPROCESSOR_POWER_INFORMATION;

 se muestra correctamente la velocidad del procesador en una app en modo consola utilizando la salida estandar,
Código: Text
  1.  
  2.  PROCESSOR_POWER_INFORMATION sInfoPro;
  3.  DWORD Veloc=(sInfoPro.CurrentMhz/1000141);
  4.  cout  << Veloc << '\n';
  5.  
  6.  

pero al hacerlo por ejemplo en un Memo, el resultado es incorrecto, imagino que será un problema de casting de tipos, pero no doy con ello, alguna sugerencia?

           Gracias...