JVM Warming Up(Warmup)
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에 즉시 접근 가능해진다.