Foro de elhacker.net

Programación => Java => Mensaje iniciado por: ignorantev1.1 en 10 Mayo 2014, 20:03 pm



Título: Frames por segundo.
Publicado por: ignorantev1.1 en 10 Mayo 2014, 20:03 pm
Buenas, jóvenes.

Busco sacar los FPS de una aplicación, pero se me cerró el mundo, me quedé bloqueado. De hecho creo que hoy es 38 de Febmarvienmbre de 1732... Pero bueno, esto es lo que tengo:

Código
  1. for(;;){
  2.  
  3. lstMillis = System.currentTimeMillis();
  4.  
  5. //<Física, etc, etc>
  6. //<Gráficos>
  7.  
  8. globalTimer++;
  9.  
  10. try{
  11. Thread.sleep(10);
  12.  
  13. tMillis = tMillis + (System.currentTimeMillis() - lstMillis);
  14.  
  15. fps = (float) globalTimer / ((float) tMillis / 1000);
  16. }
  17.  

¿Cómo ven?, ¿ando muy errado?, ¿alguna sugerencia?

Saludos.


Título: Re: Frames por segundo.
Publicado por: ivancea96 en 10 Mayo 2014, 20:09 pm
Así viéndolo por encima, parece que va bien encarado no? Te funciona?


Título: Re: Frames por segundo.
Publicado por: engel lex en 10 Mayo 2014, 20:11 pm
el 1 segundo  dividido entre entre el espacio de un cuadro y otro = fps


30 fps = 0.033seg por cuadro -> 1/0.033 ~ 30fps

recomiendo promediar durante 1 segundo y luego mostrar resultado, si no, el numero será erraticamente ilegible :P


Título: Re: Frames por segundo.
Publicado por: ignorantev1.1 en 10 Mayo 2014, 20:35 pm
Citar
Así viéndolo por encima, parece que va bien encarado no? Te funciona?
Pues así como está me da 97.xxx FPS, me parece muy bueno para ser cierto. Y eso que hay un retardo de 10 milis.

Citar
Insertar Cita
el 1 segundo  dividido entre entre el espacio de un cuadro y otro = fps


30 fps = 0.033seg por cuadro -> 1/0.033 ~ 30fps

recomiendo promediar durante 1 segundo y luego mostrar resultado, si no, el numero será erraticamente ilegible :P

¿Te refieres a la variación de FPS de un segundo a otro?, si es así, pues no hay variación.

Saludos.


Título: Re: Frames por segundo.
Publicado por: engel lex en 10 Mayo 2014, 20:40 pm
tu lo haces por acumulador, yo por muestreo inmediato :p

y si pueden ser 97fps porque posiblemente no tienes vsync activo y tampoco graficos complicados