My guess is, it is slow on the first call because the JVM has not warmed up yet. Usually when you first starts up your application, as it starts to process requests, the JVM’s JIT compiler and other optimizations will kick in to make any subsequent requests faster. I don’t have all the details on this off top of my head, but if you Google “JVM warm up”, you will find a lot of detailed information on this topic. That’s why it is sometimes recommended to “simulate” a few “dummy requests” right after your app is deployed to pre-warm it up in preparation to handle actual requests from users.