Java, C#, VM Performance and Benchmarks

Kevin Bealer Kevin_member at pathlink.com
Tue Mar 21 13:03:34 PST 2006


In article <dvpmc3$15sk$1 at digitaldaemon.com>, Craig Black says...
>
>There are so many people that are fooled by benchmarks indicating that Java 
>performs as well as C++.  Don't be an idiot!  Yes, there are programs that 
>you can write in Java that will run as fast as the equivalent C++ programs. 
>These programs are typically small.  Notice that they do not use a lot of 
>object instantiation.  In other words, you don't see a lot of "new MyClass" 
>in these programs.  But try to write a 3D game engine in Java.  I've talked 
>with some of the best game programmers in the world and they say the same 
>thing:  Java is damn slow.
>
>-Craig 

I've talked to Java people who've said that Java is pretty fast, and the
performance loss is not too big of a deal.  But if you talk about putting 4
integers in a class and then creating a container of those, they see that as
just a poor design, performance wise.

In D you can do this with struct (similarly in C++), and it doesn't hurt
performance at all.  In Java, I think most experienced people would unroll the
struct and use an array of int.

In other words (if this anecdote is true in general), experienced Java folk see
performance coding as a matter of getting rid of abstractions (i.e. class
definitions and the associated objects), because proliferating objects is
expensive in Java.

D (and C++) allow you to keep these abstractions at no runtime cost, but the
language is a bit more complex (or in the case of C++, much more) by virtue of
having the extra syntax to make it possible.

Kevin





More information about the Digitalmars-d mailing list