comp.lang.ada
 help / color / mirror / Atom feed
From: Martin Krischik <krischik@users.sourceforge.net>
Subject: Re: The Computer Language Shootout Benchmarks
Date: Thu, 04 May 2006 18:48:04 +0200
Date: 2006-05-04T18:48:04+02:00	[thread overview]
Message-ID: <5221419.vt3xd4rotE@linux1.krischik.com> (raw)
In-Reply-To: 1706825.Rr4F3nhIbP@linux1.krischik.com

Martin Krischik wrote:

> jimmaureenrogers@worldnet.att.net wrote:
> 
>> 
>> Martin Krischik wrote:
>>> Hello
>>>
>>> Ada is currently missing 2 programs on the "The Computer Language
>>> Shootout Benchmarks" [1].
>>>
>>> I would not mind having a go. But before I start:
>>>
>>> One test [2] needs a hash table implementation. The compiler used has
>>> no Ada 2005 features so one need to add the implementation to the code
>>> itself. Anybody can got a stand alone implementation? Or knows which
>>> collections class lib could easily been torn apart?
>>>
>>> The  other test [3] needs some Unbounded_Integer / BigInt etc. type. We
>>> could bind to gmp - but I don't like the idea if pragma Import in the
>>> code.
>> 
>> This is precisely why I have not found the motivation to complete those
>> two benchmarks.
> 
> And somehow I feel that one of those tests has been make to make debians
> hash tables for C shine.
> 
> Also C cheats:
> 
> 1) Thy don't check for ">THREE" as demanded but only for ">TH" making up
> for a propper string compare. I think that Ada won't need that
> 
> 2) They use a dynamicly growing buffer with an initial size large enough
> to hold the hole dateset. This we can dupplicate using the old recursive
> string concaternation with an initial string size just as big as C's so it
> never goes into recursion.

Current timing for Ada looks quite ok:

++ ./knucleotide

real    0m0.251s
user    0m0.184s
sys     0m0.024s
++ ./KNucleotide_1

real    0m0.359s
user    0m0.288s
sys     0m0.004s
++ ./KNucleotide_2

real    0m0.299s
user    0m0.240s
sys     0m0.008s

First is gcc c - as I have not got the same setup as the shootout I use the
c version to compare myself against.

The other two are two different version of Ada. Both are not finished and
missing freeing heap memory.

Interestingly enough the two version allmost identical - In the 2nd version
I just rearraged the package/procedure hierarchy using a package local to a
procedure for the main work. I did this because I wanted to experiment with
region based storrage (not implemented yet) and this theems is consistently
faster.

Want a sneed preview, here you find the code:

http://svn.sourceforge.net/viewcvs.py/wikibook-ada/trunk/demos/Source/Language_Shootout/

There is only one problem: LOC rating is terrible, worse there is.

Martin
-- 
mailto://krischik@users.sourceforge.net
Ada programming at: http://ada.krischik.com



  reply	other threads:[~2006-05-04 16:48 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-05-02 17:33 The Computer Language Shootout Benchmarks Martin Krischik
2006-05-02 18:39 ` jimmaureenrogers
2006-05-03 16:03   ` Martin Krischik
2006-05-04 16:48     ` Martin Krischik [this message]
2006-05-04 18:20       ` tmoran
2006-05-05  8:10       ` Craig Carey
2006-05-05 18:15         ` Martin Krischik
2006-05-06 11:00           ` Craig Carey
2006-05-06 19:00           ` tmoran
2006-05-06  7:00       ` igouy
2006-05-07  9:56         ` Martin Krischik
2006-05-06  6:57     ` igouy
2006-05-02 19:14 ` Gautier
2006-05-04  2:01   ` Craig Carey
2006-05-04  3:16     ` Craig Carey
2006-05-06  7:34       ` igouy
2006-05-06 11:29         ` Craig Carey
2006-05-06 16:01           ` igouy
2006-05-08 13:24             ` Marc A. Criley
2006-05-09  5:23               ` Craig Carey
2006-05-02 21:32 ` Tapio Kelloniemi
2006-05-02 22:37   ` Matthew Heaney
2006-05-03 10:12     ` Tapio Kelloniemi
2006-05-03 14:55       ` Matthew Heaney
2006-05-03 16:15         ` Martin Krischik
2006-05-03 17:11         ` Tapio Kelloniemi
2006-05-03 16:05   ` Martin Krischik
2006-05-03  0:12 ` Matthew Heaney
2006-05-03 16:05   ` Martin Krischik
replies disabled

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