Building high-performance applications and services in Java: An experiential study
Abstract
Java is the programming language of choice for dynamic content on the Internet. The language's popularity has arisen from its portability, ease-of-use, and integration with HTML. Java is used to enable animation on Web pages, to dynamically select and format Web page content at Web servers, and to provide client-side user input checking as a front-end to transaction-oriented applications. However, with a few exceptions, Java has not been used to develop applications and servers that demand high performance or throughput. In this paper, we describe techniques for improving the performance of Java code and enabling the development of high-throughput applications and servers. We show that Java code can be easily optimized to achieve performance that is comparable with that of traditional languages such as C or C++. We base these results on our experience in developing the InVerse (Interactive Universe) server in Java. Our results apply to Sun's Java class library and virtual machine, but other implementations may exhibit other performance characteristics.