[Python-Dev] speed up readline() using getc_unlocked()

Guido van Rossum guido@python.org
Wed, 03 Jan 2001 16:36:07 -0500


> On Solaris 2.6, the configure script doesn't detect that
> getc_unlocked() & friends are supported; details available from the
> patch.

(Fixed now, see the new patch.)

> After editing config.h manually to enable them, the results are:
> 
> Before getc_unlocked patch:
> total 1559913 chars and 32513 lines
> count_chars_lines     0.892  0.730
> readlines_sizehint    0.329  0.300
> using_fileinput       4.612  4.470
> while_readline        2.739  2.670
> 
> After patch:
> total 1559913 chars and 32513 lines
> count_chars_lines     0.698  0.680
> readlines_sizehint    0.273  0.270
> using_fileinput       2.707  2.700
> while_readline        0.778  0.780
> amarok src>           
> 
> With a patched version of fileinput.py:
> using_fileinput       1.675  1.680

Thanks!  The bottom line seems to be that your basic readline loop is
still 3x as slow as the fastest way -- so there's still a lot to say
for xreadlines...

--Guido van Rossum (home page: http://www.python.org/~guido/)