Subject: Re: bug#18626: 24.3.94; communication with subprocess is slow

From: Stephen Leake <[email-masked]>
Date: Sun, 05 Oct 2014 08:20:47 -0500

Eli Zaretskii <[email-masked]> writes:

> Can you present similar timings from some Posix platform for
> comparison?

On Debian wheezy, with emacs 24.3.94:

$ cd /tmp
$ time cat < /home/Projects/emacs/emacs-24.3.94/src/xdisp.c > xdisp.c
real	0m0.007s
user	0m0.000s
sys	0m0.004s

(find-file "emacs-24.3.94/src/xdisp.c")
(pipe-torture "cat.exe")
1.556597

much faster than Windows, but still slow relative to plain file IO.

(pipe-torture "debug.exe" "4096")

This dies, because "debug.exe" exits early. It turns out that Emacs is
sending one line of the buffer at a time. I have not yet tried to figure
out why that doesn't happen on Windows.

(find-file "emacs-24.3.94/src/xdisp.c")
(pipe-torture-read "/Projects/emacs/emacs-24.3.94/src/xdisp.c")
0.077341

much faster than Windows, 10 times slower than file IO.

>> Doing (setq process-adaptive-read-buffering nil) did not change the
>> timing.
>
> AFAIK, this variable only matters for reading the subprocess output.
> Since you didn't present the results for that, there's no evidence yet
> which would support this conclusion.

Right; process-adaptive-read-buffering should only affect
pipe-torture-read.

On Windows:

    (find-file "emacs-24.3.94/src/xdisp.c")
    (pipe-torture-read "/Projects/emacs/emacs-24.3.94/src/xdisp.c")

    process-adaptive-read-buffering t:
    11.997684

    process-adaptive-read-buffering nil:
    12.012685

process-adaptive-read-buffering has no effect.

Simililary, on Debian, process-adaptive-read-buffering has no effect.

-- 
-- Stephe