Before diving deep into understanding code-related performance problems, it is important to understand the platform on which the code is going to run. This not only includes the JVM, but also the underline operating system, hardware infrastructure, and network infrastructure. You may be wondering, why should I care about that? Isn’t just focusing on the application code enough to make sure my application runs smoothly?
Unfortunately, the answer is no. No, it's not enough just to focus on improving your code. The reason is very simple--your code depends on the resources provided by JVM, operating system, and network infrastructure. When you write the REST client, you are relying on the underline network infrastructure to deliver the data. When you write the multithreaded code, you are relying on JVM and underlying operating system...