Computer Science/JAVA

JVM Warming Up(Warmup)

해피단무지 2018. 7. 27. 18:28

The first request made to a Java or JVM web application is often substantially slower than the average response time over the life of the process. This warm-up period can usually be attributed to lazy class loading and just-in-time compilation, which optimize the JVM for subsequent requests that execute identical code.

As a result, many users find it beneficial to submit a few artificial requests into the JVM process before using it to handle real traffic. Even a simple set of no-op requests to your application can warm-up the networking and messaging parts of the stack, which usually constitute a large portion of the request overhead.

This article describes one strategy for implementing such behavior on Heroku.

[출처] https://devcenter.heroku.com/articles/warming-up-a-java-process

  • JVM Benchmark를 하기 위해서는, Real 환경(conditions)과 비슷하게 하기 위해서 측정 전에 반드시 Warm-up을 수행해야 한다.

  • 사용방법: @Warmup(iterations = 3) 과 같은 Annotation을 사용한다.

  • Class loading이 끝나면 모든 중요한 class들은 JVM Cache에 적재된다. 레이턴시가 낮은 어플리케이션에 대해서는 모든 class를 사전에 cache에 적재할 필요가 있다. 따라서 이 class들은 runtime에 즉시 접근 가능해진다.

[출처] https://www.baeldung.com/java-jvm-warmup


'Computer Science > JAVA' 카테고리의 다른 글

Maven 이란? (Apache Maven)  (0) 2018.08.03
JVM Benchmark Applications  (0) 2018.07.27