Volume 12, Issue 6 pp. 363-373
Research Article

Performance limitations of the Java core libraries

Allan Heydon

Allan Heydon

Compaq Computer Corporation, Systems Research Center, 130 Lytton Avenue, Palo Alto, CA 94301, U.S.A.

Search for more papers by this author
Marc Najork

Corresponding Author

Marc Najork

Compaq Computer Corporation, Systems Research Center, 130 Lytton Avenue, Palo Alto, CA 94301, U.S.A.

Compaq Computer Corporation, Systems Research Center, 130 Lytton Avenue, Palo Alto, CA 94301, U.S.A.Search for more papers by this author

Abstract

Unlike applets, traditional systems programs written in Java place significant demands on the Java runtime and core libraries, and their performance is often critically important. This paper describes our experiences using Java to build such a systems program, namely, a high-performance web crawler. We found that our runtime, which includes a just-in-time compiler that compiles Java bytecodes to native machine code, performed well. However, we encountered several performance problems with the Java core libraries, including excessive synchronization, excessive allocation, and other inefficiencies. The paper describes the most serious pitfalls and how we programmed around them. In total, these workarounds more than tripled the speed of our crawler. Copyright © 2000 John Wiley & Sons, Ltd.

The full text of this article hosted at iucr.org is unavailable due to technical difficulties.