• Select a language



J2EE* Performance Optimization, Part 2
Page & Feed Options
Print this
Bookmark This
Digg this | Add to your del.icio.us account
Table of Contents

JVM selections
An optimized application deployed on an optimized application server still needs to run on a JVM. The best way to choose a JVM is to find one that is already optimized for the computer platform that your workload will run on. BEA JRockit is optimized for Intel® architecture, making it a solid choice, whether it is running Windows or Linux*. A JVM that is optimized on Intel architecture will immediately take advantage of new architecture features as they become available. It will also be able to schedule the best instructions on the architecture.

JRockit comes with many default options that are a good starting point for your applications. Many of these options provide significant performance boosts due to the research and effort put into JRockit development. For example, the use of large pages can improve the performance of Data Translation Lookaside Buffer on the microprocessor. Approximately a 3-10% performance gain can be due to this feature alone. JRockit also has features to optimize for locks, which are common barriers to performance for Java programs. The efficient GC algorithm can detect usage and optimize heap usage.

As JRockit is itself quite efficient, there are not many runtime parameters to tune, with the possible exception of heap usage. Their native thread implementation and parallel garbage collection give high performance. For an application that does not spend much time in GC, an increase in heap allocation may only buy a performance improvement of 1-2%.

JRockit is not just a high-performance JVM; it is also feature-rich, and a lot of performance data can be collected for analysis. One tool for this purpose is the JRockit Console, which provides a GUI that shows various resource utilizations. If the GUI interface is not desirable, one can use JRA to collect data for hotspot analysis and general health of the system including heap, objects, and locks. These tools can pinpoint performance issues that may be correctable at the application-code level. For automated performance data collection, perhaps the easiest way is to use PERFMON interface to collect data such as the following:

  • JRockit JVM Code Generation(Total)\Methods Generated and Optimized–the effectiveness of optimization of the application code can be inferred.

  • JRockit JVM Memory(Total)\Heap Size, Free Heap, Used Heap Before/After GC, Pause Time, #Young/Old Collections – the impact of GC and memory on performance can be observed.
Many of the tools supported by JRockit are already used by the JRockit development team to improve the performance of applications. Therefore, it is very likely that a typical application developer may have less concern with JVM tuning once an appropriate choice has been made on the platform he or she wants to run on.

Prev6  7  8  9  10  Next

Page 8 of 13