From: Stefan Monnier <monnier@iro.umontreal.ca>
Subject: Re: What is the _essential_ difference between lazy-lock and jit-lock?
Date: Mon, 26 Jan 2004 21:46:19 GMT [thread overview]
Message-ID: <jwvu12i4d66.fsf-monnier+gnu.emacs.help@asado.iro.umontreal.ca> (raw)
In-Reply-To: g9o3vb.26.ln@acm.acm
[ I suggest we move this to emacs-devel, which I Cc'd. ]
>> I'm pretty sure I've seen this report (although I can't remember it),
>> but it sounds like a different problem than just tuning, more like a
>> real bug, probably a bad-regexp in the font-lock settings of a
>> major-mode (the potentially exponential behavior of the current
>> regexp-engine is a common problem). This was probably compounded by
>> the fact that inhibit-quit is set during stealth fontification (input
>> is polled instead).
> More info: When Emacs hangs in this manner, a double C-g followed by
> `fg' often (but not always) brings forth this:
> : Garbage collection in progress; cannot auto-save now
> : but will instead do a real quit after garbage collection ends
> : Abort (and dump core)? (y or n)
> On replying `n', Emacs frees up again. Left undisturbed it frequently
> goes back into the hung state.
> I conjecture that complicated regexps in font-lock settings are somehow
> creating garbage at a fabulous rate, and jit-lock and the GC are somehow
> thrashing. Just as soon as jit-lock can be halted and the GC left in
> peace, things return to OK.
Hmm... the regexp-engine does not generate any garbage. If you're inside
the GC, that means you're not inside the regexp-matcher. So clearly the
bug is different. A backtrace (and an xbacktrace) would be helpful.
> I've just noticed something: jit-lock-stealth-load seems to be set by
> default to 200%. This seems strange. Should this perhaps be 20%. ;-)
Have you tried to change it? 200% indeed sounds too high. But on my
single-user Opteron workstation, with no particular background task
I currently have 16% of CPU use, so a limit of 20% might be a bit low.
Maybe 50% ?
Playing with jit-lock-stealth-nice is also a good idea. The only problem
with it is that if your machine is very fast and takes 0.001s per chunk,
waiting 0.125s between each chunk leads to ridiculously low CPU usage,
whereas if each chunk takes 1s, then waiting 0.125s between chunks still
leads to more than 80% CPU usage. So maybe jit-lock-stealth should measure
the time it takes for it to process one chunk and dynamically adapt
jit-lock-stealth-nice so as to produce a given CPU usage.
Stefan
next prev parent reply other threads:[~2004-01-26 21:46 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-01-22 18:06 What is the _essential_ difference between lazy-lock and jit-lock? Alan Mackenzie
2004-01-22 18:57 ` Stefan Monnier
2004-01-22 23:07 ` Alan Mackenzie
2004-01-22 23:37 ` Stefan Monnier
2004-01-23 10:36 ` Alan Mackenzie
2004-01-23 11:42 ` Eli Zaretskii
2004-01-23 16:29 ` Stefan Monnier
2004-01-23 19:28 ` Kevin Rodgers
2004-01-26 19:03 ` Alan Mackenzie
2004-01-26 21:46 ` Stefan Monnier [this message]
[not found] ` <mailman.1214.1074858619.928.help-gnu-emacs@gnu.org>
2004-01-23 22:34 ` Alan Mackenzie
2004-01-24 10:41 ` Eli Zaretskii
[not found] ` <mailman.1266.1074941164.928.help-gnu-emacs@gnu.org>
2004-01-26 17:53 ` Alan Mackenzie
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=jwvu12i4d66.fsf-monnier+gnu.emacs.help@asado.iro.umontreal.ca \
--to=monnier@iro.umontreal.ca \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).