Re: C++ Speed Vs. Java
Keith H Duggar wrote:
Ivan Novick wrote:
I have heard this often: "adequately fast" ... That is
why I am trying to judge generically if Java would be an
order of magnitude slower than C++ by its very nature or
not. However from the replies I have gotten, it seems
Java is not an order of magnitude slower than C++, with
the caveat that it all depends on the details of your
application.
As far as speed, Java is probably not significantly slower
generally for common apps. However, be careful not to focus
only on speed. In the shops I've worked in (including the
current one) where both Java and C++ are used extensively,
we have had significant trouble in two areas. The first,
ironically is memory hogging. It seems that our Java apps
suck up huge amounts of memory and don't like to give it
back. This causes us a lot of grief when running these apps
with scores of other apps.
That's a good point. My experience, too, has been that Java, or
at least the Sun JVM, uses a lot more memory than one might
initially expect. And that the amount of memory seemed to be
independant of the size of the application: hello, world used as
much memory as our complex GUI based application. A priori, I
don't see why this should be implicit in the language; I suspect
that it is more an artifact of a particular implementation. But
given that 9 times out of 10, it's the implementation you're
going to have to use, it should be taken into account.
Second, in my experience Java
file i/o is slower than C++ in practice.
You've obviously not used the Sun CC libraries for IO:-).
(Seriously, I've no real experience with either. Most of my
critical IO is synchronized, and of course, that is slow, even
in C++.)
Now perhaps the Java programmers in my shops were/are not
elite? I honestly do not know. Perhaps great Java code does
not have such problems with memory consumption and file i/o
speed. Or at least no more so than C++. On the other hand,
/in practice/ these have been problems with Java relative to
C++ /in my experience/. I'm curious if others have seen
similar trends or if they have some general advice on what
we might be doing wrong with respect to memory & file i/o.
I can only confirm the memory use. I've heard rumors (from a
friend of a friend, so I really don't know how much faith to put
in them) that the IBM JVM didn't have the memory problem.
Supposedly (according to Sun) it is inherent with the use of
garbage collection, but I've not seen it, at least not to that
degree, with C++ using the Boehm collector. (Using garbage
collection generally does result in a bigger memory footprint,
but not anywhere near to the point using Java did.)
(No we do not have memory hogging nor file i/o problems with
our C++ apps. Occasional core dumps on the other hand ... ;-)
:-)
In my business, furnishing wrong information, or failing to
furnish complete information, is considered worse than a core
dump. You know, the sort of thing that happens when you get a
NullPointerException in the middle of Swing.
--
James Kanze (GABI Software) email:james.kanze@gmail.com
Conseils en informatique orientie objet/
Beratung in objektorientierter Datenverarbeitung
9 place Simard, 78210 St.-Cyr-l'Icole, France, +33 (0)1 30 23 00 34
--
[ See http://www.gotw.ca/resources/clcm.htm for info about ]
[ comp.lang.c++.moderated. First time posters: Do this! ]