|
[Table of Contents/Page 1] [Page 2] [Page 3] [Page 4] [Page 5] Chapter 5Impact on Software Reusability Overview A primary benefit of object-oriented programming is that it can increase development productivity by providing powerful language mechanisms for software reuse. In practice however, such reusability is rarely attained. Extensive use of these mechanisms can significantly reduce performance, which leads programmers to use them sparingly. A surprising side-effect of the Java HotSpot technology is that it significantly reduces this performance cost. Sun believes this will have a major impact on how object-oriented software is developed, by allowing companies for the first time to take full advantage of object-oriented reusability mechanisms, without compromising the performance of their software. Examples of this effect are easy to come by. A survey of programmers using the Java programming language will quickly reveal that many avoid using fully "virtual" methods (and also write bigger methods), because they believe that every virtual method invocation entails a significant performance penalty. Ubiquitous, fine-grain use of "virtual" methods, such as methods that are not "static" or "final" in the Java programming language, is extremely important to the construction of highly reusable classes, because each such method acts as a "hook" that allows new subclasses to modify the behavior of the superclass. Because the Java HotSpot VM can automatically inline the vast majority of virtual method invocations, this performance penalty is dramatically reduced, and in many cases eliminated altogether. It is hard to overstate the importance of this effect. It has the potential to change fundamentally the way that object-oriented code is written, since it significantly changes the performance trade-offs of using important reusability mechanisms. In addition, it has become clear that as object-oriented programming matures, there is a trend towards both finer-grain objects and finer-grain methods. Both these trends point strongly to increases in the frequency of virtual method invocations in the coding styles of the future. As these higher-level coding styles become prevalent, the advantages of Java HotSpot technology will become even more pronounced. Chapter 6Summary The Java HotSpot VM delivers optimal performance for Java applications, delivering advanced optimization, garbage collection, and thread synchronization capabilities. In addition, this latest release offers new debuging capabilities which are designed to improve overall reliability and availability of Java technology applications. The Java HotSpot VM provides separate compilers for client and server environments so that applications can be optimized according to their target deployment environments. Scalability has been significantly enhanced with the availability of a 64-bit Java HotSpot Server Compiler. With the Java HotSpot VM, client applications start up faster and require a smaller memory footprint, while server applications can achieve better sustained performance over the long run. Both solutions deliver an extremely reliable, secure, and maintainable environment to meet the demands of today's enterprise customers. Chapter 7Availability The Java HotSpot VM is included in the Java 2, Standard Edition v1.4.0 platform environment. It is available at java.sun.com for the following environments:
The Java HotSpot Server VM is also included in the release of Java 2 technology from Hewlett-Packard for their PA-RISC hardware platforms. The Java HotSpot Client VM v1.31 is shipping as part of Apple OS X. [Table of Contents/Page 1] [Page 2] [Page 3] [Page 4] [Page 5] | ||||
|
| ||||||||||||