Skip to main content

How much improvement can be expect in future?

3 replies [Last post]
linuxhippy
Offline
Joined: 2004-01-07

Hi there,

I ask this question myself many times thinking about the quite good code generated by HotSpot-Server.

On the other side I still see 5% improvements for numerical benchmarks like SciMark which I thought are almost optimal and have only little room for further optimizations.

Of course it really depends which code you're running but in general, how much improvement can we expect in the next couple of years in general (summing up all kind of java-software)?
I see great improvements in EA in conjunction with lock-removeal and stack-allocation (please in Mustang!).
What else could be done to improve raw performance?

lg Clemens

Reply viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
mayhem
Offline
Joined: 2003-06-11

I see two potential features that will make a huge impact in some applications:

- Escape analysis which will reduce the performance cost of immutable objects to virtually zero. This enables developers to write clean and maintanable code without sacrificing performance.

- Auto vectorization of loops to utilize technologies like SSE. This has the potential of making code upto 4 times faster.

Both optimizations are important in game and scientific programming.

As for de-virtualizing and inlining method calls I think Hotspot is doing quite well already. Of course, if the algorithms are improved so that more calls can be inlined, that will make a performance difference.

linuxhippy
Offline
Joined: 2004-01-07

> - Auto vectorization of loops to utilize technologies
> like SSE. This has the potential of making code upto
> 4 times faster.
Yep but this will help only a very small fration of source and "normal" software will not benefit at all.
However I also hope this will be integrated soon so that Java-Developers get at least a chance for using advanced instruction sets.

> Of course,
> if the algorithms are improved so that more calls can
> be inlined, that will make a performance difference.
As far as I know there are no types of calls that can't be inlined.

lg Clemens

biehl
Offline
Joined: 2003-06-19

Hi,

Here are some fun papers (from http://jikesrvm.sourceforge.net/info/papers.shtml )

Advanced profiling (maybe for cache effectiveness)
http://www.ece.lsu.edu/lcpc2005/papers/lcpc05-paper-22.pdf

Specialization (for some programs)
http://www.cs.berkeley.edu/~bodik/research/oopsla05-specialization.pdf

Per platform inlining rules
http://www.anc.ed.ac.uk/machine-learning/colo/inlining.pdf

Also AFAIR Intel is building extensions for the x86 instruction set to better support VM's (eg the JVM)

And AFAIR some Sun guys wrote a paper discussing processor extensions that would benefit Java.

(edit - here it is ) http://research.sun.com/techrep/2005/abstract-143.html

-Anders

Message was edited by: biehl

Message was edited by: biehl