comp.lang.ada
 help / color / mirror / Atom feed
From: "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de>
Subject: Re: Q: Line_IO
Date: Mon, 31 Aug 2009 20:39:45 +0200
Date: 2009-08-31T20:39:39+02:00	[thread overview]
Message-ID: <1a4usf20z4mxa.1vct95fmrcs6h.dlg@40tude.net> (raw)
In-Reply-To: 4a9b045a$0$31875$9b4e6d93@newsspool3.arcor-online.net

On Mon, 31 Aug 2009 00:59:38 +0200, Georg Bauhaus wrote:

> Text_IO seems fairly slow when just reading lines of text.
> Here are two alternative I/O subprograms for Line I/O, in plain Ada,
> based on Stream_IO.   They seem to run significantly faster.

When you print you do:

   Stream_IO.Write (Stdout, To_Bytes (Item & Separator_Sequence));

You could try not to concatenate:

   Stream_IO.Write (Stdout, To_Bytes (Item));
   Stream_IO.Write (Stdout, To_Bytes (Separator_Sequence));

, which should be faster when Item is large.

Then there is a crazy way to convert congruent types without
Unchecked_Conversion. I cannot tell whether it is actually faster:

   procedure Print (Item : String) is
      subtype Index is Stream_Element_Offset range 1..Item'Length;
      subtype XBytes is Stream_Element_Array (Index);
      Alias : XBytes;
      for Alias'Address use Item'Address;
   begin
      Stream_IO.Write (Stdout, Alias);
      ...   

P.S. The superimposed object shall not have initializers.

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de



  parent reply	other threads:[~2009-08-31 18:39 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <4a9b045a$0$31875$9b4e6d93@newsspool3.arcor-online.net>
2009-08-31  8:28 ` Q: Line_IO Martin
2009-08-31 10:05   ` Georg Bauhaus
2009-08-31 15:33     ` Anh Vo
2009-08-31 16:52       ` Georg Bauhaus
2009-08-31 18:39 ` Dmitry A. Kazakov [this message]
2009-08-31 22:51   ` Robert A Duff
2009-09-01  0:35     ` Georg Bauhaus
2009-08-31 23:56   ` Georg Bauhaus
2009-09-01  0:19     ` Georg Bauhaus
2009-09-01  1:08       ` Robert A Duff
2009-09-01  7:02     ` Ludovic Brenta
2009-09-01  9:55       ` Georg Bauhaus
2009-09-01 12:03       ` jonathan
     [not found]       ` <4a9e2c86$0$30235$9b4e6d93@newsspool1.arcor-online.net>
2009-09-02  8:47         ` Georg Bauhaus
2009-09-05 20:30       ` Georg Bauhaus
replies disabled

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