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
next prev 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