comp.lang.ada
 help / color / mirror / Atom feed
From: "Randy Brukardt" <randy@rrsoftware.com>
Subject: Re: Mneson announcement and help request
Date: Wed, 2 Jun 2004 17:10:07 -0500
Date: 2004-06-02T17:10:07-05:00	[thread overview]
Message-ID: <xK-dnZHKcKOszSPdRVn-ug@megapath.net> (raw)
In-Reply-To: c9l0vo$pq3$1@sparta.btinternet.com

"Martin Dowie" <martin.dowie@btopenworld.com> wrote in message
news:c9l0vo$pq3$1@sparta.btinternet.com...
...
> If you look at the assembler for the nested instansiation that you found
slow, you will see lots
>of system calls to sort out stack. If you look at assembler for exception
raising and handling,
>you'll see similar calls to save the occurance, reraise an exception,
whatever. Try stepping
>through the GNAT exception mechanism (in particular a-except.adb) - still
look fast
>compared to a check for an End_Of_File?

Well, yes, because End_of_File for Text_IO is very expensive (it has to do
lookahead of as many as two characters, and doing so makes later Gets
expensive as well). But "End_of_File" (or indeed any function call) misses
the point.

Indeed, the issue is the number of raises (in all compilers) and the number
of handlers (in most compilers). The number of these should be relatively
small, because compilers don't (usually can't) make this fast. In
particular, you should never raise and handle an exception in a (tight)
loop. (Our style guide strongly discourages exception handlers in loops.)
But calling expensive functions is no help!

                      Randy.






  parent reply	other threads:[~2004-06-02 22:10 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-06-01 15:56 Mneson announcement and help request Marius Amado Alves
2004-06-02  2:26 ` Jeff C,
2004-06-02  3:06   ` Marius Amado Alves
2004-06-02 11:19     ` Georg Bauhaus
2004-06-02 11:41       ` Marius Amado Alves
     [not found]         ` <c9l0vo$pq3$1@sparta.btinternet.com>
2004-06-02 17:47           ` Marius Amado Alves
2004-06-02 19:46             ` Martin Dowie
2004-06-02 22:10           ` Randy Brukardt [this message]
2004-06-03  5:58             ` Martin Dowie
2004-06-04  3:21               ` Randy Brukardt
2004-06-04  5:55                 ` Martin Dowie
2004-06-04  7:30                   ` Jean-Pierre Rosen
2004-06-04 14:11                     ` Larry Kilgallen
2004-06-03  4:12           ` Jeffrey Carter
2004-06-03  5:48             ` Martin Dowie
2004-06-03  9:02             ` Martin Krischik
2004-06-02 11:41       ` Georg Bauhaus
2004-06-02 13:14         ` Marius Amado Alves
2004-06-03  4:09         ` Jeffrey Carter
2004-06-03 11:24           ` Georg Bauhaus
2004-06-02  3:21   ` Marius Amado Alves
2004-06-22 20:49     ` Jacob Sparre Andersen
2004-06-23  9:36       ` Marius Amado Alves
replies disabled

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