comp.lang.ada
 help / color / mirror / Atom feed
From: "Tarjei T. Jensen" <tarjei@online.no>
Subject: Re: GNAT: Performance of String functions
Date: 1997/07/22
Date: 1997-07-22T00:00:00+00:00	[thread overview]
Message-ID: <33D4F30F.5299@online.no> (raw)
In-Reply-To: 1997Jul22.071638.1@eisner


>> 
>>Tarjei T. Jensen writes:
>> 
>> I suspect bounded strings will perform badly against a counted string
>> implementation because assignment of strings involves copying the entire array
>> whether it contains valid data or not. This makes Ada less than wonderful in
>> applications that involve a lot of bounded string assignments.
>
>Larry Kilgallen wrote:
> No, it might affect particular _implementations_ of Ada, but I have
> read no indications that counted strings would not be a valid way of
> implementing bounded strings.  If the Varying String datatype made
> quite public by DEC Pascal were used in some Ada implementation to
> implement bounded strings (and for all I know, it or something quite
> close to it is) execution should be quite efficient for strings
> below a certain size (ultimately one gets into page faults, cache
> misses and other stack-vs-heap issues).
> 
> Larry Kilgallen

That would mean that the implementation supply a default maximum size.
If the implementation should be more effective than the usual bounded
string implementation the compiler whould have to know what the real
length of a string is for assignments. Otherwise the code generated
spends a lot of time copying junk data.

A "smart" compiler is paramount since we cannot do anything about the
assignment operator in Ada. We can write a custom procedure or function
to handle assignment, but it is not the same as ":=".

I would be delighted if someone could show that a smart compiler is not
neccessary to optimize counted or bounded string operations.


Greetings,


-- 
// Tarjei T. Jensen 
//    tarjei@online.no || voice +47 51 62 85 58
//   Support you local rescue centre: GET LOST!




  reply	other threads:[~1997-07-22  0:00 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1997-07-18  0:00 GNAT: Performance of String functions Jakob Heinemann
1997-07-18  0:00 ` Robert Dewar
1997-07-19  0:00   ` Tarjei T. Jensen
1997-07-19  0:00     ` Matthew Heaney
1997-07-20  0:00     ` Tarjei T. Jensen
1997-07-20  0:00     ` Robert Dewar
1997-07-20  0:00       ` Tarjei T. Jensen
1997-07-20  0:00         ` Robert Dewar
1997-07-21  0:00           ` Tucker Taft
1997-07-21  0:00             ` Tarjei Jensen
1997-07-21  0:00               ` Matthew Heaney
1997-07-22  0:00               ` Robert Dewar
1997-07-22  0:00                 ` Tarjei Jensen
1997-07-22  0:00                   ` Robert Dewar
1997-07-22  0:00                   ` Larry Kilgallen
1997-07-22  0:00                     ` Tarjei T. Jensen [this message]
1997-07-23  0:00                       ` Robert Dewar
1997-07-23  0:00                         ` Tarjei Jensen
1997-07-23  0:00                           ` Samuel Mize
1997-07-23  0:00                             ` W. Wesley Groleau x4923
1997-07-24  0:00                             ` Robert A Duff
1997-07-24  0:00                           ` Mats Weber
1997-07-24  0:00                             ` Tarjei Jensen
1997-07-24  0:00                               ` Matthew Heaney
1997-07-24  0:00                               ` Robert Dewar
1997-07-24  0:00                             ` Robert Dewar
1997-07-28  0:00                               ` Mats Weber
1997-07-28  0:00                                 ` Robert Dewar
1997-07-28  0:00                                   ` Robert Dewar
1997-07-28  0:00                                 ` Matthew Heaney
1997-07-29  0:00                                   ` Robert Dewar
1997-07-24  0:00                             ` Matthew Heaney
1997-07-23  0:00                       ` Larry Kilgallen
1997-07-21  0:00             ` Robert Dewar
1997-07-22  0:00   ` Jakob Heinemann
1997-07-23  0:00     ` Robert Dewar
replies disabled

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