Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Como Saber La Freq De Un Micro?

Iniciado por Pogacha, 27 de Octubre de 2005, 12:58:20 PM

« anterior - próximo »

Pogacha

 En win32 como se cual es la velocidad de un micro? (o el rendimiento si fuera posible)
Saludos.

fiero

 Yo uso esta función, que tarda 1 seg en ejecutarse y devuelve la velocidad en MHz. Se puede hacer que tarde menos, pero con 1 segundo a mí me da mejores resultados. Lo que hace la función es contar el número de veces que se ejecutan ciertas instrucciones en ese tiempo de 1 seg.

un saludo

unsigned int GetCpuSpeed()
{
int    timeStart = 0;
int    timeStop = 0;
unsigned long   StartTicks = 0;
unsigned long   EndTicks = 0;
unsigned long   TotalTicks = 0;
unsigned long   cpuSpeed = 0;


 timeStart = GetTickCount();    //GET TICK EDGE
 for(;;)
 {
  timeStop = GetTickCount();  
  if ( (timeStop-timeStart) > 1 )  // ROLLOVER PAST 1
  {
   __asm{
     xor    eax, eax
     xor    ebx, ebx
     xor    ecx, ecx
     xor    edx, edx
     _emit  0x0f    // CPUID
     _emit  0xa2
     _emit  0x0f    // RDTSC
     _emit  0x31
     mov    [StartTicks], eax
    }
   break;
  }
 }

 timeStart = timeStop;    

 for(;;)
 {
  timeStop = GetTickCount();  
  if ( (timeStop-timeStart) > 1000 ) //ONE SECOND
  {
   __asm{
     xor    eax, eax
     xor    ebx, ebx
     xor    ecx, ecx
     xor    edx, edx
     _emit  0x0f    // CPUID
     _emit  0xa2
     _emit  0x0f    // RDTSC
     _emit  0x31
     mov    [EndTicks], eax
    }

   break;
  }
 }

 TotalTicks = EndTicks-StartTicks;  // TOTAL

 cpuSpeed = TotalTicks/1000000;   // SPEED

return (UINT)cpuSpeed;  
}
www.videopanoramas.com Videopanoramas 3D player

TheAzazel

 Para ver las caracteristicas de tu micro, descargate el wcpuid de este enlace:

http://hp.vector.co.jp/authors/VA002374/sr...c/download.html

Existe otro que se llama CPUIDZ o algo asi, pero a mi me gusta mas el que te he dado.

Para ver el rendimiento...hay mil benchmark... depende de lo quieras probar, aspecto grafico? en juegos? cpu en calculos 3d? cpu en calculos matematicos? cpu en aplicaciones normales?

Di que es lo que quieres medir y te dire el q yo utilizo..

EDIT: jeje, y si te referias a desde codigo...fiero te ha dado la funcion para obtener los mhz... jeje como el post esta en programadores...creo que me cole :P

Warchief

Cita de: "TheAzazel"Existe otro que se llama CPUIDZ o algo asi, pero a mi me gusta mas el que te he dado.
CPUZ ? http://www.cpuid.org/cpuz.php

Pogacha

 Lo necesito en tiempo real ... para determinar el mejor codepath a utilizar.
El codigo de Fiero parece la solución.
Suponia que alguna función de windows debería poder hacerla como cuando vas a propiedades de sistemas   <_< pero por mas que rasquetié el registro de windows y toda la msn no encontré nada...
Muchas gracias

Pogacha

 
Cita de: "fiero"Yo uso esta función, que tarda 1 seg en ejecutarse y devuelve la velocidad en MHz. Se puede hacer que tarde menos, pero con 1 segundo a mí me da mejores resultados. Lo que hace la función es contar el número de veces que se ejecutan ciertas instrucciones en ese tiempo de 1 seg.
Cuando dices ciertas ... no lo entiendo, no estas contando los ciclos de reloj con la RDTSC !?, pueden ser variables?
Muchas gracias.

fiero

 La función no es mia, creo que la saqué de la página de AMD. Lo quería explicar a groso modo, pero sí, es eso, cuenta el número de ciclos en 1 seg.

un saludo
www.videopanoramas.com Videopanoramas 3D player

[EX3]

 En Win32 tira del registro de Windows, la info la tienes en este path del registro:

HKEY_LOCAL_MACHINE\Hardware\Description\System\CentralProcessor\0\~MHz

Para mi al menos en VB es la unica forma que conozco.

Toda la informacion del procesador: mhz, nombre, familia, etc..  la obtengo de dicha ruta para una funcion de la dx_lib32 2.0 y es el metodo que implemente en un menu de arranque y configuracion para el juego RAD: Refinden Against Don (y que no se incluyo al final por precisar de las runtimes del VB para tirar y por que el creador del juego se nego a hacer una instalacion para juego e incluirlas :P)

Salu2...
José Miguel Sánchez Fernández
.NET Developer | Game Programmer | Unity Developer

Blog | Game Portfolio | LinkedIn | Twitter | Itch.io | Gamejolt

Pogacha

 Bueno, gracias, lo busque en varias maquinas y solo esta en 2 de las 5 que probé asi que no me sirve, curiosamente estaba en las que si dice el megajeraje en las propiedades de sistema.
Saludos

[EX3]

 
Cita de: "Pogacha"Bueno, gracias, lo busque en varias maquinas y solo esta en 2 de las 5 que probé asi que no me sirve, curiosamente estaba en las que si dice el megajeraje en las propiedades de sistema.
Te refieres a la ruta del registro que te puse?  :blink:

EDIT: Cierto, en version 9x no existe dicha clave del registros :( Estoy gogleando y no encuentro nada sobre la clave para versiones 9x, parece como si no existiese...

Salu2...
José Miguel Sánchez Fernández
.NET Developer | Game Programmer | Unity Developer

Blog | Game Portfolio | LinkedIn | Twitter | Itch.io | Gamejolt






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.