JavaWorld debuts weekly Java performance column

Plenty of quick tips on the horizon

As a Java technology evangelist for Sun Microsystems, I travel around the world disseminating technical information regarding the Java 2 Platform to developers, members of the press, and analysts who don’t necessarily have access to individuals with Java platform expertise. I have two primary responsibilities: I’m an ambassador of technology on the one hand, and an advocate for developers on the other. As an ambassador, I provide technical insights into the Java platform to facilitate adoption of a particular technology and to offer technical answers and key roadmaps for veterans of the platform. As an advocate, I ensure that objective developer issues are forwarded to the appropriate engineering product group for consideration in planning future releases of specific APIs, features, and platform releases.

Personally, I have 16 years of experience developing software systems. I worked at the Stanford Research Institute researching network protocols, distributed systems, and a host of Internet technologies. Additionally, I worked at Sybase in the kernel and performance group helping develop Sybase’s distributed database engine. I began looking at Java at Sybase when I was working on a project to integrate the Java Virtual Machine (JVM) into the database engine. As you can imagine, there were many issues to resolve. The kernel team was assigned the task of understanding the performance problems and, of course, resolving them in a timely fashion. Java performance has been a central focus for me ever since.

Java 2 Platform

The Java platform consists of three major components: the Java 2 Platform, Standard Edition (J2SE); the Java 2 Platform, Enterprise Edition (J2EE); and the Java 2 Platform, Micro Edition (J2ME). J2SE is the core platform most familiar to developers; that is, it contains the JVM, Java Foundation Classes (JFC), Remote Method Invocation (RMI), JavaBeans, and other traditional components of the Java platform. J2EE is a relatively new platform for enterprise development. It provides a framework for developing robust server-side applications with APIs dedicated to server technology. For example, Enterprise JavaBeans (EJB) and Java Transaction Service (JTS) are included in J2EE and provide a seamless environment for enterprisewide Java development. J2ME is the platform for device and mobile computing. I evangelize the J2SE platform and the associated performance technology (that is, the HotSpot performance engine).

In the future …

Although the Java language has opened up new dimensions in the world of software development, it has also created new challenges. Given that Java is platform independent and interpreted, writing code that performs well is no longer cut and dried. Java developers need to focus their optimization efforts on a higher level of abstraction, independent of architectural idiosyncrasies.

It has become apparent to me in my travels around the world evangelizing Java technology that some fundamental misconceptions exist regarding Java performance. The same concerns and issues have been voiced time and time again with respect to understanding what components make up the Java execution workload, what developers can do to identify performance bottlenecks, what tools are available, which JVM is available on which platform, and which JVM should be used to deliver the best performance.

The intent of this column is to delineate the issues pertinent to Java performance and to resolve questions and concerns expressed to me by developers worldwide. Moreover, I will provide heuristics, tips, and pointers for facilitating Java performance solutions.

Reggie Hutcherson evangelizes Sun’s Java 2
Platform technologies around the world, concentrating on J2SE and
the HotSpot performance engine.

Source: www.infoworld.com