From: "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de>
Subject: Re: Reading the while standard input into a String
Date: Mon, 6 Jun 2011 20:18:16 +0200
Date: 2011-06-06T20:18:16+02:00 [thread overview]
Message-ID: <1a84tm53l1wjx.1xdgsbp25vyd5.dlg@40tude.net> (raw)
In-Reply-To: 1e5e764d-eb7b-4804-8119-b535ddbe5e7e@32g2000vbe.googlegroups.com
On Mon, 6 Jun 2011 08:18:44 -0700 (PDT), Maciej Sobczak wrote:
> On Jun 6, 10:33�am, Ludovic Brenta <ludo...@ludovic-brenta.org> wrote:
>
>> I'd rather process the input one fixed-length chunk at a time
>
> This is a can of warms - how big should be that chunk? :-)
For a compiler it is the maximal length of look ahead / roll-back,
normally, less than just one line. The line length can be reasonably
limited to say 10_000 characters (usually the language defines the maximal
line length).
>> Note that reading one character at a time from a stream is quite fast
>> since streams normally use the operating system's buffered IO. Adding
>> a second layer of buffering inside your program is probably counter-
>> productive.
>
> Or not. System calls are relatively expensive - typically much more
> expensive than copying data around. For this reason wisely used
> additional buffers can improve performance of I/O operations.
The opposite is also possible, unless the OS driver uses user-space
buffers. So I would follow Ludovic's advise, especially in the case of a
compiler where reading overhead is negligible comparing to other
computations per character.
--
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de
next prev parent reply other threads:[~2011-06-06 18:18 UTC|newest]
Thread overview: 50+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-06-05 16:20 Reading the while standard input into a String Natasha Kerensikova
2011-06-06 1:49 ` robin
2011-06-06 7:18 ` Dmitry A. Kazakov
2011-06-06 10:46 ` Natasha Kerensikova
2011-06-06 12:05 ` Dmitry A. Kazakov
2011-06-06 16:55 ` Jeffrey Carter
2011-06-06 17:42 ` Pascal Obry
2011-06-06 17:43 ` Pascal Obry
2011-06-06 18:31 ` Dmitry A. Kazakov
2011-06-06 8:09 ` stefan-lucks
2011-06-06 8:33 ` Ludovic Brenta
2011-06-06 10:08 ` Natasha Kerensikova
2011-06-06 10:27 ` Ludovic Brenta
2011-06-06 10:31 ` Ludovic Brenta
2011-06-06 12:07 ` Natasha Kerensikova
2011-06-06 15:18 ` Maciej Sobczak
2011-06-06 18:18 ` Dmitry A. Kazakov [this message]
2011-06-06 18:36 ` Maciej Sobczak
2011-06-06 18:53 ` Dmitry A. Kazakov
2011-06-06 19:10 ` J-P. Rosen
2011-06-06 19:46 ` Dmitry A. Kazakov
2011-06-06 23:37 ` Shark8
2011-06-07 3:00 ` Randy Brukardt
2011-06-07 7:25 ` Dmitry A. Kazakov
2011-06-07 7:32 ` Maciej Sobczak
2011-06-07 8:51 ` Dmitry A. Kazakov
2011-06-07 3:10 ` Randy Brukardt
2011-06-06 19:06 ` J-P. Rosen
2011-06-06 19:52 ` Dmitry A. Kazakov
2011-06-07 3:15 ` Randy Brukardt
2011-06-06 22:14 ` Robert A Duff
2011-06-06 9:46 ` Georg Bauhaus
2011-06-06 11:16 ` Georg Bauhaus
2011-06-06 12:11 ` Dmitry A. Kazakov
2011-06-06 13:32 ` Georg Bauhaus
2011-06-06 14:06 ` Dmitry A. Kazakov
2011-06-06 14:14 ` Georg Bauhaus
2011-06-07 3:19 ` Randy Brukardt
2011-06-06 18:14 ` John B. Matthews
2011-06-07 10:23 ` Martin
2011-06-07 16:57 ` John B. Matthews
2011-06-07 17:22 ` Robert A Duff
2011-06-07 17:55 ` John B. Matthews
2011-06-08 0:26 ` Robert A Duff
2011-06-08 7:38 ` Egil Høvik
2011-06-08 9:27 ` Martin
2011-06-08 12:04 ` Egil Høvik
2011-06-08 18:09 ` Niklas Holsti
2011-06-09 0:46 ` Randy Brukardt
2011-06-10 8:22 ` Martin
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox