comp.lang.ada
 help / color / mirror / Atom feed
From: "Steven Deller" <deller@smsail.com>
To: <comp.lang.ada@ada.eu.org>
Subject: RE: What is faster Ada or C?
Date: Tue, 4 Dec 2001 01:54:00 -0500
Date: 2001-12-04T01:54:00-05:00	[thread overview]
Message-ID: <mailman.1007448966.30275.comp.lang.ada@ada.eu.org> (raw)
In-Reply-To: <3C0C3664.7C3B3927@acm.org>

Ada.  If written right with a reasonable compiler.

I have had many cases where Ada was faster, both at the macro level and
the micro level.

One macro example -- old UNIX without threads.  50 Ada tasks sharing
SIGIO with 50 open TCP-IP connections versus a single C program doing
the same thing with a "hand coded" routine to check for I/O completions
on SIGIO (actually doing less processing than the Ada version).  The Ada
version achieved 20% better throughput.

In the above, polling was first used in the Ada program.  Because the
Ada was slow, the customer wrote a C framework that did none of the
processing done in the Ada program, but got twice the throughput of the
unmodified data.  The customer wanted to abandon Ada "because Ada
tasking is too slow" and asked for their money back on the compiler.  

We went in, analyzed the problem using RMA, showed them the problem,
provided a "SIGIO distributor" package, changed 10 lines of their
application code to eliminate polling and use SIGIO, and got 140%
speedup from the original Ada, resulting in 20% more throughput than the
simple C program.  I could even explain why the Ada version *should* be
faster, but that was about 10 years ago.

One micro example -- SQRT.  Using Apex and
Numerics.Generic_Elementary_Functions the SQRT function is faster in Ada
than in C on any target system with hardware SQRT.  This is because C
uses a library call to get to the function, while with Ada it is
possible to use Machine_Code and inlining to just "use" the machine
instruction.  Further, for single-precision SQRT, C must promote the
single-precision to double-precision, do the SQRT, and then demote the
result.  In Ada, the single-precision SQRT machine instruction is all
that appears in the code listing.

Regards,
Steve Deller
deller@smsail.com





  reply	other threads:[~2001-12-04  6:54 UTC|newest]

Thread overview: 74+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-12-01  1:22 What is faster Ada or C? Heiko Hamann
2001-12-01  1:43 ` Aaro Koskinen
2001-12-03  8:49   ` John McCabe
2001-12-04 23:00     ` Florian Weimer
2001-12-05 15:53       ` Ted Dennison
2001-12-06  0:17         ` Jeffrey Carter
2001-12-10 15:18   ` Dale Pontius
2001-12-10 17:44     ` Pascal Obry
2001-12-01  3:44 ` Nick Roberts
2001-12-01 20:09   ` Heiko Hamann
2001-12-02  4:49     ` Jeffrey Carter
2001-12-02 10:44       ` Pascal Obry
2001-12-04 11:43       ` john mann
2001-12-04 14:25         ` Ted Dennison
2001-12-05  9:46           ` John McCabe
2001-12-02 10:07     ` Mark Lundquist
2001-12-03 14:43       ` Ted Dennison
2001-12-09 12:31       ` Robert Dewar
2001-12-01  9:26 ` Gisle Sælensminde
2001-12-01 10:13 ` Pascal Obry
2001-12-02 17:49   ` Bertrand Augereau
2001-12-03 14:39 ` Ted Dennison
2001-12-03 16:19   ` Jeffrey Carter
2001-12-03 19:04     ` Ted Dennison
2001-12-03 20:56       ` Georg Bauhaus
2001-12-03 21:17         ` Preben Randhol
2001-12-03 21:20           ` Preben Randhol
2001-12-04 23:02           ` Florian Weimer
2001-12-05 16:05             ` Georg Bauhaus
2001-12-06 23:33               ` Florian Weimer
2001-12-04  2:35         ` Jeffrey Carter
2001-12-04  6:54           ` Steven Deller [this message]
2001-12-04 22:05             ` Bertrand Augereau
2001-12-06  4:25               ` Richard Riehle
2001-12-07 20:02                 ` Hyman Rosen
2001-12-09 19:32                   ` Richard Riehle
2001-12-11 16:14                     ` Hyman Rosen
2001-12-14  0:36                       ` Will
2001-12-19 22:23                         ` Hyman Rosen
2001-12-17 17:37                       ` Richard Riehle
2001-12-20 23:02                         ` Hyman Rosen
2001-12-23  4:12                           ` Will
2001-12-23  6:41                             ` James Rogers
2001-12-04 22:37         ` Pascal Obry
2001-12-05 15:57           ` Georg Bauhaus
2001-12-05 17:12             ` Larry Kilgallen
2001-12-07 13:21     ` Jacob Sparre Andersen
2001-12-07 15:16       ` Aaro Koskinen
2001-12-07 16:50         ` Preben Randhol
2001-12-07 17:03           ` Jacob Sparre Andersen
2001-12-07 17:26             ` Aaro Koskinen
2001-12-07 18:32               ` Preben Randhol
2001-12-07 20:23               ` Wes Groleau
2001-12-07 17:11           ` Ted Dennison
2001-12-07 18:47             ` Preben Randhol
2001-12-07 16:16       ` Preben Randhol
2001-12-07 17:04         ` Jacob Sparre Andersen
2001-12-07 16:26       ` Ted Dennison
2001-12-07 17:08         ` Jacob Sparre Andersen
2001-12-09 12:27           ` Robert Dewar
2001-12-10 16:51             ` Jacob Sparre Andersen
2001-12-10 17:33               ` Jeff Creem
2001-12-07 16:45       ` Georg Bauhaus
2001-12-07 17:02         ` Preben Randhol
2001-12-07 17:10         ` Jacob Sparre Andersen
2001-12-07 18:12       ` Pascal Obry
2001-12-07 18:50         ` Preben Randhol
2001-12-07 18:54           ` Pascal Obry
2001-12-07 20:40             ` Preben Randhol
2001-12-07 22:01               ` Pascal Obry
2001-12-07 18:19       ` Jeffrey Carter
2001-12-10  9:59       ` Ole-Hjalmar Kristensen
  -- strict thread matches above, loose matches on Subject: below --
2001-12-02 19:37 Gautier Write-only-address
2001-12-23 10:33 Gautier Write-only-address
replies disabled

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