Welcome Guest. | Log In| Register | Membership Benefits
April 28, 1998 (10:35 AM EDT)

Compilers Speed Java, But There Is A Trade-Off

Compilers Speed Java, But There Is A Trade-Off

By Richard Karpinski,

Java performance on the server is about to get a major caffeine boost, but debate is raging as to whether the enabling technologies will sustain or subvert the technology's write-once-run-anywhere spirit.

As IT developers wait for Sun Microsystems to deliver HotSpot, its long-promised, next-generation "just-in-time" compiler, other vendors are working to deliver native platform compilers, which optimize Java byte code for specific hardware platforms.

Although native Java compilers have been available from tools vendors, including Metrowerks, Supercede, Symantec, and Tower Technology, major improvements in native compilation technology are expected in the second half of this year, as well as new offerings from large players with longtime compiler expertise and major enterprise platforms to support, including Hewlett-Packard, IBM, and Microsoft.

For IT developers and so many other things related to Java, the question is the same: How do you separate market positioning from valuable technical advances?

"What's going on is all the vendors are fighting to make their platform the preferred platform for executing Java," said Aberdeen Group analyst Tim Sloane. "They tune their tools to their platform to eke out maximum performance and ease development with diagnostic and deployment aids."

"At the same time," Sloane added, "a lot of effort to have the very fastest environment is simply an effort to move to the top of the latest benchmark test list. In some instances, it's more marketing hype than anything."

However, server-side Java has become so important, any effort to improve performance bears watching.

"Performance is the biggest detriment to Java so far," said Jonathan Clay, chief technologist at Nevo Technologies, which has a 10-person development team in the midst of a two-year project, building a Java-based enterprise information system for Harvard University, in Cambridge Mass.

Pick Up The Pace With JIT Compilers
One answer to the relative slowness of Java virtual machines, which execute Java code, is just-in-time compilers. JIT compilers compile Java byte code for specific machines on the fly, with the compilation occurring at each instance the application is called.

Early JIT compilers have begun to move Java performance up to par with C++ code in some cases. Sun last week released a new JIT, licensed from Symantec, as part of its Java Development Kit 1.1.6 release.

Meanwhile, Sun's upcoming HotSpot compiler -- due in alpha this summer and in final form in late fall -- makes an even more heady promise: It will be better than C++ code performance thanks to "optimistic optimization" that detects the hardware platform on the fly, and dynamically tunes Java applications, said David Griswold, engineering manager for HotSpot.

"A static compiler has to do all its work ahead of time. It needs to make least-common-denominator assumptions," such as making sure code ported to Intel machines runs on both 386 and Pentium II processors, Griswold said.

Static compilers also have problems with Java's more dynamic features, such as array balance checking, garbage collection, and dynamic class loading. Enterprise JavaBeans, the emerging server-side component architecture, means servers will have to handle more dynamically assembled Java applications, Griswold said, something native compilers cannot handle.

Nothing Is Too Hard To Handle
Other vendors say such challenges can be overcome. For instance, imagine a hybrid application with 90 percent compiled for performance and 10 percent geared toward JIT environments to handle more dynamic elements, said Angus McIntyre, marketing manager for IBM's VisualAge for Java tool.

"If you want to deliver every last ounce of performance on a box you know the architecture of, that's where a static compiler definitely plays a role," McIntyre said.

Indeed, IBM, while a major backer of 100 Percent Pure and JIT Java, also has aggressively investigated the potential of native compilation. The most recent version of Visual Age for Java has a native compiler for IBM's own AS/400 platform, and a test compiler on IBM's AlphaWorks site offers native Java compilation to Windows NT and 95, OS/2, and AIX platforms.

IBM is shooting to move broader native compiler support into the next major version of Visual Age, expected later this year, McIntyre said. "We have 15 years in the optimization business here -- just watch us," he said.

Somewhat surprisingly, Microsoft takes a measured view of native compilation.

"Native compilation is one area we're investigating to improve performance. Unfortunately, the technology or approach to solve the problem isn't there today," said Bill Dunlap, product manager for Visual J++, adding Microsoft is hopeful it can produce a solution in six to 12 months.

For HP, meanwhile, optimizing Java for its platforms, particularly emerging 64-bit machines, is a simple matter of helping its customers, while at the same time differentiating itself from fellow hardware and Unix vendor Sun.

"A VM [virtual machine] isn't the answer to all things, as Sun would have you believe," said Nigel Ball, general manager for HP's Internet applications systems division. "You're likely to see a rift within Sun over time as JavaSoft, in true religious style, backs the VM, while the hardware side is faced with customers trying to optimize their applications."

What? Performance Is Fine
Other early Java users are skeptical performance is an issue.

"The one thing we're pretty satisfied with server-side Java is the performance. We have a workflow engine on the back end and database connectivity, and it runs fine," said Charlie Bonomo, director of clinical technology at the Mt. Sinai Medical Center, in Cleveland, Ohio, and a major Java user. "My general impression is these guys are building tools not many people are using."

The debate over performance gains aside, it is important to note native compilation -- unlike platform-specific application programming interfaces -- does not necessarily subvert Java's cross-platform cause. Developers can still write in 100 Percent Pure Java, and any loss of Java code portability could simply be managed as part of the development process.

"It would just be another step in the process of putting builds out," said Clay, the chief technologist at Nevo. "It would stop you from being able to just dump a [code] image from one machine to another, but it's a small price to pay if the performance benefits are large."


CAREER CENTER
Ready to take that job and shove it?
SEARCH
Function:

Keyword(s):

State:
SPONSOR
RECENT JOB POSTINGS
CAREER NEWS
Go beyond Google and get vertical. These specialized search sites will help you find the business information you need -- fast.

Ari Balogh was named to the post of chief technology officer as the companys for a "realignment" of employees.

Advertisement


TechSearch for related stories



Specialty Resources

Featured Microsite


Microsites

Featured Topic

Additional Topics

Crush The Competition

TechWeb's FREE e-mail newsletters deliver the news you need to come out on top.

Techencyclopedia

Get definitions for more than 20,000 IT terms.

Techwebcasts

Editorial and vendor perspectives


Vendor Resources


Focal Points