emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: MacOS X: Carbon Emacs problem


From: David Kastrup
Subject: Re: MacOS X: Carbon Emacs problem
Date: 01 Dec 2003 03:35:17 +0100
User-agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.3.50

[Toppost rearranged]

Martin Fredriksson <address@hidden> writes:

> > Let me guess.  You are working on a single processor system.  The
> > reason for this may well be something which I already brought up
> > here once which will on _many_ single processor operating systems
> > result in _very_ inefficient operation: when Emacs is listening on
> > a pipe, it will wake up and process a single byte willingly.  But
> > while Emacs is processing this single byte (and Emacs usually is
> > rated an interactive application by the scheduler and thus does
> > not get preempted), the application producing the byte does not
> > get any CPU time.  So when Emacs has finished processing that
> > single byte and gives back the CPU to the scheduler, the output
> > generating program will again just generate a single byte (or
> > sometimes line) before Emacs gets control of the CPU again.  But
> > it is maximally inefficient to have a pipe only be processed with
> > such small units.
> >
> > Try some of the following remedies:
> >
> > M-x customize-variable TeX-command-list RET
> >
> > And then append to the TeXing command you usually use
> >
> > |dd obs=8k
> >
> > which should fill the pipe with much larger chunks.  Another
> > possibility is to do
> >
> > (defadvice TeX-command-filter (before TeX-pipe-fill)
> >   (when (< (length string) 80)
> >      (sleep-for 0.05)))
> >
> > This will, in case the filter function receives only a short string,
> > actively yield the CPU for a moment in which the pipe can fill some
> > more.  Please report whether this increases throughput on your
> > machine.

> Thanks for a very informative (and quick!) answer.  The 'dd obs=8k'
> really improved speed!  Great!  The filter did not noticably improve
> speed; I have not experimented with different sleep times (do you
> want me to do that?).

Before you do that, it might make more sense to just activate the
advice in the first place.  I am so stupid.  Try

(defadvice TeX-command-filter (before TeX-pipe-fill activate)
  (when (< (length string) 80)
     (sleep-for 0.05)))

[rest snipped to spare the list a repetition of my proposal]

It would also be nice if you tried looking at what difference in real
time those changes make on your machine, just to press home the point.

-- 
David Kastrup, Kriemhildstr. 15, 44793 Bochum




reply via email to

[Prev in Thread] Current Thread [Next in Thread]