comp.lang.ada
 help / color / mirror / Atom feed
From: dewar@merv.cs.nyu.edu (Robert Dewar)
Subject: Re: Performance Ada and C
Date: 1998/07/03
Date: 1998-07-03T00:00:00+00:00	[thread overview]
Message-ID: <dewar.899493280@merv> (raw)
In-Reply-To: 359CB19D.EDAD6D1F@cl.cam.ac.uk


Markus says

<<I recently spent some time optimizing an Ada encryption routine
<http://www.cl.cam.ac.uk/~mgk25/download/serpent-ada.tar.gz>,
and while the best available C implementation
<http://www.cl.cam.ac.uk/ftp/users/rja14/serpent.tar.gz>
did 27 Mbit/s, I wasn't able to get with Ada more than
20 Mbit/s on the same processor (Pentium II, 300 MHz) using
the same compiler (gnat-3.10p).

>>


It is always possible to duplicate the object code of any C code writing
in 100% Ada using GNAT. Of course you may have to write at a lower semantic
level than you would wish.

But if you didn't close the gap, it just means you didn't use the right
approach. Most probably you were using some Ada specific feature that you
thought was equivalent to the C code when it was not, that is the most common
reason for this kind of failure. 

Of course it is also possible to write inefficient C without being very
aware
of things. For exanmle, the use of strlen can be horrible compared to the
direct reading of the bounds of an array in Ada.

So this is not something that is asymmetrical. Whether a C program or an
Ada program for the same task is faster or slower depends primarily on 
the programming style used by the programmer, and only secondarily on the
compiler.

I am always surprised how often Ada programmers have no idea of the 
consequences of what they write. By the way the -gnatdg switch in GNAT is
a useful tool in this regard.





  reply	other threads:[~1998-07-03  0:00 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <35921271.E51E36DF@aonix.fr>
     [not found] ` <3598358A.73FF35CC@pipeline.com>
     [not found]   ` <dewar.899298949@merv>
1998-07-03  0:00     ` Performance Ada and C, was Re: Size code Ada and C Van Snyder
1998-07-03  0:00       ` Performance " Markus Kuhn
1998-07-03  0:00         ` Robert Dewar [this message]
1998-07-03  0:00           ` Markus Kuhn
1998-07-04  0:00             ` ak
1998-07-07  0:00             ` Frank Klemm
1998-07-13  0:00               ` Daren Scot Wilson
     [not found] ` <m3zpf1tyr8.fsf@zaphod.enst.fr>
     [not found]   ` <6mtiv0$9j3@gcsin3.geccs.gecm.com>
     [not found]     ` <dewar.898962846@merv>
     [not found]       ` <6n8393$hoi$2@platane.wanadoo.fr>
     [not found]         ` <6n84im$79q@gcsin3.geccs.gecm.com>
     [not found]           ` <m3u35470ds.fsf@zaphod.enst.fr>
     [not found]             ` <6n8b7u$9hm@gcsin3.geccs.gecm.com>
     [not found]               ` <m3vhpk5f0d.fsf@zaphod.enst.fr>
     [not found]                 ` <3597db2d.1017430@news.demon.co.uk>
     [not found]                   ` <EACHUS.98Jun30173656@spectre.mitre.org>
1998-07-03  0:00                     ` Size code " John McCabe
1998-07-03  0:00                       ` Larry Elmore
1998-07-03  0:00                         ` John McCabe
1998-07-07  0:00                         ` Robert I. Eachus
     [not found]         ` <dewar.899298821@merv>
1998-07-07  0:00           ` Robert I. Eachus
     [not found]       ` <6n7jut$al0$1@nnrp1.dejanews.com>
     [not found]         ` <6navqt$shc$1@goanna.cs.rmit.edu.au>
     [not found]           ` <359A53E2.41C6@lanl.gov>
     [not found]             ` <dewar.899334821@merv>
     [not found]               ` <6nfp0v$dgl@gcsin3.geccs.gecm.com>
1998-07-02  0:00                 ` Ariane 5 failure (Was: Size code Ada and C) Jean-Pierre Rosen
1998-07-03  0:00             ` robin
1998-07-02  0:00               ` William Clodius
1998-07-09  0:00             ` Plenty of unnecessary contraint tests " Frank Klemm
1998-07-09  0:00               ` Robert Dewar
1998-07-10  0:00                 ` Frank Klemm
1998-07-10  0:00               ` Ariane 5 failure " Dale Stanbrough
1998-07-10  0:00                 ` John McCabe
1998-07-10  0:00                   ` Pat Rogers
1998-07-10  0:00                   ` Frank Klemm
1998-07-10  0:00               ` Plenty of unnecessary contraint tests " Robert S. White
replies disabled

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