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:
for(;;){
lstMillis = System.currentTimeMillis();
//<Física, etc, etc>
//<Gráficos>
globalTimer++;
try{
Thread.sleep(10);
}catch(InterruptedException e){}
tMillis = tMillis + (System.currentTimeMillis() - lstMillis);
fps = (float) globalTimer / ((float) tMillis / 1000);
}
¿Cómo ven?, ¿ando muy errado?, ¿alguna sugerencia?
Saludos.
Así viéndolo por encima, parece que va bien encarado no? Te funciona?
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
CitarAsí 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.
CitarInsertar 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.
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