• Sábado 14 de Diciembre de 2024, 17:59

Autor Tema:  Velocidad Procesador  (Leído 1890 veces)

Beldwir

  • Nuevo Miembro
  • *
  • Mensajes: 11
    • Ver Perfil
Velocidad Procesador
« en: Domingo 26 de Septiembre de 2004, 17:54 »
0
Alguien sabe de alguna función o estructura que devuelva la velocidad del reloj del procesador en Mhz.?

            Gracias.

_Viktor

  • Miembro MUY activo
  • ***
  • Mensajes: 271
    • Ver Perfil
    • http://AyudaCBuilder.foros.st
Re: Velocidad Procesador
« Respuesta #1 en: Domingo 26 de Septiembre de 2004, 19:21 »
0
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!
_Viktor _Yañez_
"Ser inteligente no es ser mas, solo equivocarse menos y no usar visual basic"

http]

Beldwir

  • Nuevo Miembro
  • *
  • Mensajes: 11
    • Ver Perfil
Re: Velocidad Procesador
« Respuesta #2 en: Domingo 26 de Septiembre de 2004, 22:14 »
0
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!

Beldwir

  • Nuevo Miembro
  • *
  • Mensajes: 11
    • Ver Perfil
Re: Velocidad Procesador
« Respuesta #3 en: Domingo 26 de Septiembre de 2004, 23:09 »
0
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...