From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM autolearn=ham autolearn_force=no version=3.4.4 X-Google-Thread: 103376,c4cb2c432feebd9d X-Google-Thread: 1094ba,c4cb2c432feebd9d X-Google-Thread: 101deb,15c6ed4b761968e6 X-Google-Attributes: gid103376,gid1094ba,gid101deb,public X-Google-Language: ENGLISH,ASCII-7-bit Path: g2news2.google.com!news4.google.com!news3.google.com!news.glorb.com!newsfeeds.ihug.co.nz!ihug.co.nz!ken-transit.news.telstra.net!lon-in.news.telstra.net!news.telstra.net!news-server.bigpond.net.au!53ab2750!not-for-mail From: "robin" Newsgroups: comp.lang.ada,comp.lang.fortran,comp.lang.pl1 References: <0ugu4e.4i7.ln@hunter.axlog.fr> <%P_cg.155733$eR6.26337@bgtnsc04-news.ops.worldnet.att.net> <6H9dg.10258$S7.9150@news-server.bigpond.net.au> <1hfv5wb.1x4ab1tbdzk7eN%nospam@see.signature> <4475DA61.3080001@comcast.net> Subject: Re: Bounds Check Overhead X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 6.00.2800.1106 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1106 Message-ID: Date: Sat, 27 May 2006 14:29:32 GMT NNTP-Posting-Host: 144.139.71.84 X-Complaints-To: abuse@bigpond.net.au X-Trace: news-server.bigpond.net.au 1148740172 144.139.71.84 (Sun, 28 May 2006 00:29:32 EST) NNTP-Posting-Date: Sun, 28 May 2006 00:29:32 EST Organization: BigPond Internet Services Xref: g2news2.google.com comp.lang.ada:4540 comp.lang.fortran:10351 comp.lang.pl1:1767 Date: 2006-05-27T14:29:32+00:00 List-Id: "Simon Wright" wrote in message news:m2mzd569l9.fsf@grendel.local... > Bob Lidral writes: > > > However, the performance hit of including explicit bounds checking > > can be significant -- especially for code with extremely short loops > > that are executed a lot of times. > > In Ada one should where possible use the 'Range attribute: Ideally yes, but in practice, such as in sorting and averaging, the loop is often one or two short of the number of elements in the array. > for I in Some_Array'Range loop > Process (Some_Array (I)); > end loop; > > where I _can't_ exceeed the bounds, so it would be surprising if a > compiler inserted bounds checks.