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=0.2 required=5.0 tests=BAYES_00,INVALID_MSGID, REPLYTO_WITHOUT_TO_CC autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,e6c9800e35ccfeee X-Google-Attributes: gid103376,public From: "Tarjei T. Jensen" Subject: Re: GNAT: Performance of String functions Date: 1997/07/19 Message-ID: <33D11806.6C59@online.no>#1/1 X-Deja-AN: 257736808 References: <33CF3908.3DF62EEE@ericsson.com> Organization: Jensen programvareutvikling Reply-To: tarjei@online.no Newsgroups: comp.lang.ada Date: 1997-07-19T00:00:00+00:00 List-Id: > Jakob asks: > > I'm running GNAT 3.09 on a Sun Sparc Ultra 1 with Solaris 2.5. > I'm using unbounded strings and I'm comparing a lot. In fact > I have an equvalent program running the same algoritm in VAX > Pascal, and on the VAX the program runs about ten times faster. > Can I expect a dramatic speed improvement if I use another > string concept or is GNAT just slow? >Robert Dewar wrote: > > A couple of notes. First all strings are passed by reference in all cases, > so that is definitely not an issue. > > I doubt you could have an equivalent algorithm in VAX Pascal, although I don't > know VAX Pascal that well. In particular, what does the VAX Pascal use -- I > bet it either uses the equivalent of bounded strings, or it does not have > automatic finalization. The unboundedness you certainly pay a price for, > and you also pay a price for the automatic finalization. > VAX Pascal passes strings by descriptors. The string pointed to by descriptor is of type counted string. A counted string has a maximum size, an actual size and the string itself. I'm not sure anymore if the descriptor contains the maximum size of the string or if the programmer have to keep track of this. This means that comparing Ada bounded strings and VAX Pascal strings compares two different ways of doing things. Each time you change the size of an Ada bounded string there can be serious overhead. The apparent overhead of bounded strings is an strong argument for providing a standard counted string package in Ada. Greetings, -- // Tarjei T. Jensen // tarjei@online.no || voice +47 51 62 85 58 // Support you local rescue centre: GET LOST!