Large applications need support for management and performance monitoring for several reasons, during many phases of development or release.
In general, it is required to get information on the system's behavior, identify critical application spots, make a performance and resource consumption analysis (such as thread usage, memory consumption), get details about class loading, etc.
It's recommended to analyze the performance of the application in critical situations before release, and some tools and techniques are available for that purpose. The same techniques are used during development and testing when the application does not behave as it's expected.
These tools are also useful to get a better idea of how to adjust the server resources and the system parameters.