comp.lang.ada
 help / color / mirror / Atom feed
From: Ludovic Brenta <ludovic@ludovic-brenta.org>
Subject: Re: speed of generic code in Ada (vs Java)
Date: Sat, 17 May 2008 10:07:48 +0200
Date: 2008-05-17T10:07:48+02:00	[thread overview]
Message-ID: <87hccxuze3.fsf@ludovic-brenta.org> (raw)
In-Reply-To: 24bf14ef-ff0f-4309-88e0-550cd4a0dd9d@p25g2000pri.googlegroups.com

jhc0033@gmail.com writes:
> Ludovic Brenta wrote:
>> jimmaureenrogers writes:
>> > On May 16, 11:31 am, "jhc0...@gmail.com" <jhc0...@gmail.com> wrote:
>> >> Java only allows 'objects' as generics parameters. So, if you define a
>> >> generic class and use 'Integer' as a parameter, your code will be slow
>> >> because of the boxing - up to 5x compared to non-generic Int (see the
>> >> recent discussion in comp.lang.java.programmer - the 'numerics'
>> >> thread). Is the situation similar with generics in Ada, GNAT,
>> >> specifically?
>>
>> > No.
>>
>> To add to Jim's excellent answer: Ada got it right the first time,
>> back in 1980.
>
> So, if I write a, say, linear equation solver using generics in Ada,
> and then instantiate it with single precision, double precision,
> complex number single precision and complex number double precision,
> you'd expect it to be as fast as the equivalent non-generic versions?

Yes, exactly.  The language allows that, and also allows the compiler
to share the object code for generics (which incurs indirection
overhead).  In practice, only one compiler shares generics while all
others will emit different (and differently optimized) object code for
each instance.

-- 
Ludovic Brenta.



  parent reply	other threads:[~2008-05-17  8:07 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 [this message]
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
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