Java - problema con el System.currentTimeMillis

 
Vista:

problema con el System.currentTimeMillis

Publicado por pedrojo (20 intervenciones) el 14/08/2007 02:00:10
Hola, igual esta pregunta es una tontería pero esque llevo un rato dandole vueltas y me está empezando a poner nervioso, a ver si alguno me puede ayudar. Estoy haciendo una aplicación que me dice cuanto a tardado en encontrar unos ciertos puntos, para saber cuando tarda utilizao el currentTimeMillis del System, pero no se porqué siempre me da valores parecidos y muy cercanos, lo he pasado a segundos y me salen cifras rarísimas, os pido ayuda para que me digais algo.

Lo tengo declarado así para pasar a segundos:
(System.currentTimeMillis()/1000.0f);

Y me da los siguientes resultados:

Punto (-45.0, 10.0, 40.0) visitado con exito en 1.187050659734E9 milisegundos de tiempo
Punto (-85.0, 10.0, 20.0) visitado con exito en 1.187050674593E9 milisegundos de tiempo
Punto (-45.0, 10.0, -25.0) visitado con exito en 1.187050686781E9 milisegundos de tiempo
Punto (-70.0, 10.0, -20.0) visitado con exito en 1.187050696109E9 milisegundos de tiempo

Muchas gracias de antemano y cualquier opinión será bien recibida, perdonad las molestias y muchas gracias. Saludos!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

RE:problema con el System.currentTimeMillis

Publicado por chuidiang (950 intervenciones) el 14/08/2007 07:23:32
Hola:

System.currentTimeMillis() te devuelve el número de milisegundos desde el 1 de Enero de 1970, es decir, un número enorme, como el que te está saliendo.

Si quieres ver cuánto tarda un proceso, debes llamar a este método dos veces y hacer una resta

long t1 = System.currentTimeMillis();
// aquí el proceso que quieres medir cuanto tarda
long t2 = System.currentTimeMillis();
System.out.println ("Ha tardado " + (t2-t1) + "milisegundos");

Se bueno.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:problema con el System.currentTimeMillis

Publicado por pedrojo (20 intervenciones) el 14/08/2007 16:22:04
Gracias chuidiang, ahora entiendo porque me salian esos valores tan altos, jaja. Pues ya ves que tontería, yo pensaba que contaba desde que empezaba a ejecutarse la aplicación, merci.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:problema con el System.currentTimeMillis

Publicado por eduardo (1 intervención) el 28/09/2011 14:23:57
Pero ese segmento de codigo a veces te termina dando que tardo 0 milisegundos, es decir que long t1 y long t2 te dan los mismos valores
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:problema con el System.currentTimeMillis

Publicado por chuidiang (950 intervenciones) el 04/10/2011 14:57:34
En ese caso no te queda más remedio, si quieres medir, que ejecutar esa acción muchas veces y luego dividir. Por ejemplo

long t1 = System.currentTimeMillis();
for (1000 veces) {
// aquí el proceso que quieres medir cuanto tarda
}
long t2 = System.currentTimeMillis();
System.out.println ("Ha tardado " + (t2-t1)/1000.0 + "milisegundos");

Acuérdate de poner el .0 decimal en la división o igual se redondea y te vuelve a salir cero.

De hecho, aunque no salga cero al ejecutar una sola vez, es más preciso esta medida, ya que no depende de que justo en el momento de una única ejecución el ordenador esté atareado haciendo otra cosa.

Se bueno.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:problema con el System.currentTimeMillis

Publicado por ramiro (1 intervención) el 22/10/2007 06:15:22
el System.currentTimeMillis(); te devuelve el dato en milisegundos. y esto funciona de esta manera.

long t1=System.currentTimeMillis();

//proceso...

long t2=System.currentTimeMillis();

System.out.print((t2-t1)/1000);
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar