[NTG-pdftex] unbuffered vs. buffered terminal output
Hans Hagen
pragma at wxs.nl
Thu Dec 22 10:39:06 CET 2005
Hartmut Henkel wrote:
>following trivial observation i made (several runs):
>
>$ time pdfetex samplepdf
>
>real 0m2.536s
>real 0m2.605s
>real 0m2.737s
>real 0m2.654s
>
>$ time pdfetex samplepdf | buffer
>
>real 0m0.900s
>real 0m1.035s
>real 0m0.900s
>real 0m0.913s
>
>the speed gain is impressive here, also with other files from daily
>business and for longer runs. Same if i write
>
>$ pdfetex samplepdf > xxx
>
>So at least here pdfetex spends lots of time just for unbuffered talk to
>the terminal. And it's faster with a smaller window.
>
>Maybe we should think of implementing buffered writing? See e. g. man 3
>setbuf. The problem is that it should fflush() in case of errors and
>switch to unbuffered. And maybe it should fflush() also after a certain
>time of say 0.5 s, which would require select().
>
>Has anybody similar statistics?
>
>
it is a known fact that the speed depends on the kind of terminal; when
one has a console that uses outline fonts or is graphical in nature
(e.g. on the mac) the penalty can be huge; try batchmode -)
on my machine (windows xp) the size of the windows does not matter that
much (i use 5000 line scrollbacks)
maybe this 'locale' thing is interfering as well?
are chars written one by one or by line? maybe there is some
intermediate way possible:
- normal messages -> buffered
- immediate/write16 -> flush pending messages and write unbuffered
(btw, in your case, i'd try to optimize the terminal fonts; did you
compare pdfetex with e.g. compiling pdftex?)
Hans
More information about the ntg-pdftex
mailing list