comp.lang.ada
 help / color / mirror / Atom feed
From: "Randy Brukardt" <randy@rrsoftware.com>
Subject: Re: speed of generic code in Ada (vs Java)
Date: Wed, 21 May 2008 19:06:32 -0500
Date: 2008-05-21T19:06:32-05:00	[thread overview]
Message-ID: <g12deg$qdb$1@jacob-sparre.dk> (raw)
In-Reply-To: wccy7633br3.fsf@shell01.TheWorld.com

"Robert A Duff" <bobduff@shell01.TheWorld.com> wrote in message 
news:wccy7633br3.fsf@shell01.TheWorld.com...
> Graham <graham.stark@virtual-worlds.biz> writes:
>
>> In any case, the 5x comparison sounds extreme and probably comes from
>> comparing arrays of ints with something from the Java Collection
>> classes, which is a bit like comparing Ada arrays with Ada Containers.
>
> I don't see why.  Ada.Containers.Vectors, for example, does not
> introduce an extra level of indirection for each component of the
> vector.  Ada is more like C++ in that regard.

Sorry, but there is no language guarentee of this; it's more that an 
implementation of Ada.Containers.Vectors does not *have* to have a extra 
level of indirection. For Janus/Ada, for  instance, there would be such an 
(implicit) indirection coming from the generic code sharing even if there 
isn't any explicit one.

And I'd still expect comparisons to be slower, because the "=" code probably 
is a loop doing element comparisons (it has to use the formal "=" operator 
and cannot assume that the actual is the predefined "="). It might be 
possible for a compiler to optimize that, but it would be pretty complex to 
do so. (And even "=" for integers has to be done in a loop on some 
targets -- a bit comparison is not accurate for 1's complement machines, for 
instance.)

The net effect is that generalizations about Ada performance are probably 
not well-founded. Usually, Ada performance is similar to that of C++, but 
implementation differences can be a big deal and more different than those 
between languages.

                                 Randy.





  reply	other threads:[~2008-05-22  0:06 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-05-16 17:31 speed of generic code in Ada (vs Java) jhc0033
2008-05-16 18:12 ` jimmaureenrogers
2008-05-16 18:54   ` Ludovic Brenta
2008-05-17  1:50     ` jhc0033
2008-05-17  2:04       ` Georg Bauhaus
2008-05-17  6:32       ` Niklas Holsti
2008-05-17  8:07       ` Ludovic Brenta
2008-05-17 21:37       ` Gautier
2008-05-17 23:31         ` Ivan Levashew
2008-05-22 22:01     ` Florian Weimer
2008-05-21  8:12   ` Graham
2008-05-21 15:41     ` Robert A Duff
2008-05-22  0:06       ` Randy Brukardt [this message]
2008-05-23 22:55         ` Robert A Duff
2008-05-24  0:16           ` Randy Brukardt
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox