The Design and Performance of MedJava
Prashant Jain, Seth Widoff, and Douglas C. Schmidt
The Java programming language has gained substantial popularity
in the past two years. Java's networking features, along
with the growing number of Web browsers that execute Java
applets, facilitate Internet programming. Despite the popularity
of Java, however, there are many concerns about its efficiency.
In particular, networking and computation performance
are key concerns when considering the use of Java to
develop performance-sensitive distributed applications.
This paper makes three contributions to the study of Java for
performance-sensitive distributed applications. First, we describe
an architecture using Java and the Web to develop Med-Java,
which is a distributed electronic medical imaging system
with stringent networking and computation requirements.
Second, we present benchmarks of MedJava image processing
and compare the results to the performance of xv, which is an
equivalent image processing application written in C. Finally,
we present performance benchmarks using Java as a transport
interface to exchange large medical images over high-speed
For computationally intensive algorithms, such as image
filters, hand-optimized Java code, coupled with use of a JIT
compiler, can sometimes compensate for the lack of compile-time
optimization and yield performance commensurate with
identical compiled C code. With rigorous compile-time optimizations
employed, C compilers still tend to generate more
efficient code. However, with the advent of highly optimizing
Java compilers, it should be feasible to use Java for the
performance-sensitive distributed applications where C and
C++ are currently used.
- View the full text of this paper in
- If you need the latest Adobe Acrobat Reader, you can download it from Adobe's site.
- To become a USENIX Member, please see our Membership Information.