Spotting memory leaks
So, you may wonder what typically when your application starts to respond somewhat slower after running for some time. The system administrator might just restart the application now and then to free the unnecessarily accumulated memory. This need for a restart is a typical symptom of a memory leak.
As memory fills up due to a memory leak, applications will slow down and even crash. While an application slowing down is not necessarily due to a memory leak, this often is the case. When faced with code that you suspect contains a memory leak, the following metrics are very helpful in diagnosing the application:
- Heap memory footprint
- Garbage collection activity
- Heap dump
In order to demonstrate how to monitor these metrics, we will need an application that contains a memory leak. Figure 7.1 shows such a program:
Figure 7.1 – Program with a memory leak
In Figure 7.1, we are in an infinite loop starting...