From: Georg Bauhaus <sb463ba@l1-hrz.uni-duisburg.de>
Subject: Re: What is faster Ada or C?
Date: Mon, 3 Dec 2001 20:56:12 +0000 (UTC)
Date: 2001-12-03T20:56:12+00:00 [thread overview]
Message-ID: <9ugotc$rjl$1@a1-hrz.uni-duisburg.de> (raw)
In-Reply-To: v1QO7.47193$xS6.77242@www.newsranger.com
Ted Dennison <dennison@telepath.com> wrote:
: That was "hello world", I believe. I think he actually posted that example at
: one point many years back. It sort of cheated, in that it pragma-interface'd to
: C for stuff like the IO routines. But then again, there's nothing stopping you
: from doing that too if you really want to. :-)
:
For fun I've tried to check this several times myself; here is one
program in C and Ada, without optimization, that shows essentially
no difference. Differences have usually vanished when I had asked
for optimisation. OTOH, if you follow the assembly output below,
they aren't that significant anyway. The programs have been compiled
with gcc -S and gcc -S -gnatp respectively.
function Silly return Integer is
Result: Integer:= 0;
begin
for K in 1..1000 loop
Result:= Result + 1;
end loop;
return Result;
end Silly;
int silly()
{
int result = 0, k;
for (k = 1; k <= 1000; k++)
{
result++;
}
return result;
}
Here is side by side output:
.file "silly.adb" .file "silly.c"
gcc2_compiled.: gcc2_compiled.:
___gnu_compiled_ada: ___gnu_compiled_c:
.text .text
.align 4 .align 4
.globl __ada_silly .globl _silly
__ada_silly: _silly:
pushl %ebp pushl %ebp
movl %esp,%ebp movl %esp,%ebp
subl $8,%esp subl $8,%esp
movl $0,-4(%ebp) movl $0,-4(%ebp)
movl $1,-8(%ebp) movl $1,-8(%ebp)
L2: L2:
cmpl $1000,-8(%ebp) cmpl $1000,-8(%ebp)
jle L5 jle L5
jmp L3 jmp L3
.align 2,0x90 .align 2,0x90
L5: L5:
incl -4(%ebp) incl -4(%ebp)
jmp L4 L4:
.align 2,0x90 incl -8(%ebp)
jmp L3 jmp L2
.align 2,0x90 .align 2,0x90
L6: L3:
L4: movl -4(%ebp),%edx
incl -8(%ebp) movl %edx,%eax
jmp L2 jmp L1
.align 2,0x90 .align 2,0x90
L3: L1:
movl -4(%ebp),%edx movl %ebp,%esp
movl %edx,%eax popl %ebp
jmp L1 ret
.align 2,0x90
L1:
movl %ebp,%esp
popl %ebp
ret
The optimiser's output is also quite interesting :-)
Georg
next prev parent reply other threads:[~2001-12-03 20:56 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 [this message]
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
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