Book contents
- Frontmatter
- Contents
- INTRODUCTION
- GETTING STARTED WITH JAVA
- MIGRATING TO JAVA
- TECHNIQUES 101
- MODELING AND PATTERNS
- JAVA IN A DISTRIBUTED WORLD
- THREADS
- USER INTERFACES
- SECURITY
- TESTING
- PERFORMANCE
- COMPLEX JAVA APPLICATIONS: BREAKING THE SPEED LIMIT
- ARE DISTRIBUTED OBJECTS FAST ENOUGH?
- EFFICIENT TEXT SEARCHING IN JAVA
- ENTERPRISE APPLETS AND ARCHIVE FUNCTIONALITY
- REALITY CHECK
- INDEX
COMPLEX JAVA APPLICATIONS: BREAKING THE SPEED LIMIT
Published online by Cambridge University Press: 06 July 2010
- Frontmatter
- Contents
- INTRODUCTION
- GETTING STARTED WITH JAVA
- MIGRATING TO JAVA
- TECHNIQUES 101
- MODELING AND PATTERNS
- JAVA IN A DISTRIBUTED WORLD
- THREADS
- USER INTERFACES
- SECURITY
- TESTING
- PERFORMANCE
- COMPLEX JAVA APPLICATIONS: BREAKING THE SPEED LIMIT
- ARE DISTRIBUTED OBJECTS FAST ENOUGH?
- EFFICIENT TEXT SEARCHING IN JAVA
- ENTERPRISE APPLETS AND ARCHIVE FUNCTIONALITY
- REALITY CHECK
- INDEX
Summary
A basic problem with most current Java implementations is that they were designed to support very small applet-style programs. The ability to effectively execute very large, computationally complex application programs is not currently an area of strength for Java. However, Java is now being used as a general-purpose language for implementing all types of programming problems including computationally intense applications. The translation and execution techniques used by current Java implementations do not necessarily scale to support the performance requirements of such programs. Static compilation with aggressive optimization is an implementation technique that is commonly used for languages such as C, C++, and FORTRAN but has not been widely used to implement Java. This article identifies some of the reasons for Java's performance problems and examines how static compilation and optimization techniques can be applied to Java to alleviate these problems.
WHY DOES JAVA HAVE POOR PERFORMANCE?
Java's performance problems can be traced to two major sources: the inherent inefficiencies of object-oriented (OO) programming constructs and the use of a virtual machine (VM)-based implementation strategy. After explaining the details of these inefficiencies I show how static compilation technology is able to overcome them.
OO LANGUAGE INEFFICIENCIES
OO programming languages such as Java have been widely promoted as key tools for increasing programmer productivity. The productivity improvements of OO languages are generally achieved through code reuse. Using an OO language such as Java, a programmer needs to write less new code because OO languages support and encourage the reuse of existing code.
- Type
- Chapter
- Information
- More Java Gems , pp. 379 - 390Publisher: Cambridge University PressPrint publication year: 2000