Pregunta Aplicación de inicio de primavera: valor negativo del tiempo de respuesta http


Desarrollé una aplicación web siguiendo la tecnología.

  1. Bota de resorte (arrancador de resaca): 1.4.2
  2. Java 7
  3. Sistema operativo: Centos
  4. Filtro de servlet: org.spring.web.filter.OncePerRequestFilter

en el paso 4, el filtro se usa para imprimir el registro de información de solicitud / respuesta http. Esta información incluye:

  • (a) http url
  • (b) Solicitar cuerpo
  • (c) Cuerpo de respuesta
  • (d) Tiempo de respuesta.

Problema surgido con (d) tiempo de respuesta. Sin embargo, la mayor parte del tiempo de respuesta está bien. Pero para algunos pedidos y respuestas http, encontré el registro con un tiempo de respuesta negativo (por ejemplo, -1024 ms).

Aquí calculé el tiempo de respuesta http manualmente dentro del filtro de servlets

protected void doFilterInternal(...){

  long startTime = System.currentTimeMillis();
  ..
  some code
  filterChain.doFilter(httpRequest,httpResonse);
  ...
  long endTime = System.currentTimeMillis();
  long responseTime = endTime  - startTime
  log.debug(responseTIme); [SLF4J logger,logback.xml]

}

7
2017-07-31 05:24


origen


Respuestas:


Utilicé la API de StopWatch de la biblioteca de google guava, que usa System.nanoTime (), api de Java time.

https://github.com/google/guava/blob/master/guava/src/com/google/common/base/Stopwatch.java

import com.google.common.base.Stopwatch;
import java.util.concurrent.TimeUnit;


Stopwatch stopwatch = new Stopwatch();
stopwatch.start();

... 
do some code
....

stopwatch.stop();
long value = stopwatch.elapsedTime(TimeUnit.MICROSECONDS);

Me ayuda a resolver el problema

Gracias @flopcodder @Jim Garrison


0
2017-08-08 09:02



Preguntas populares