all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Ilya Zakharevich <nospam-abuse@ilyaz.org>
To: Eli Zaretskii <eliz@gnu.org>
Cc: emacs-devel@gnu.org
Subject: Re: [PATCH] 5x speedup of flyspell-buffer
Date: Thu, 13 Apr 2023 03:23:18 -0700	[thread overview]
Message-ID: <ZDfYFuWjkyDjVpVV@math.berkeley.edu> (raw)
In-Reply-To: <837cug5l18.fsf@gnu.org>

On Thu, Apr 13, 2023 at 09:54:59AM +0300, Eli Zaretskii wrote:
> > Date: Wed, 12 Apr 2023 06:50:30 -0700
> > From: Ilya Zakharevich <ilya@ilyaz.org>
> > 
> > With the included patch, on my system flyspell-buffer speeds up 5
> > times.  For my typical file sizes, this is 20sec -> 4sec on a 600K
> > LaTeX file with 10,000 words detected by `aspell´ — which makes
> > using flyspell feasible.
> > 
> >   The version is not the most recent, but IIUC, flyspell did not change.
> > 
> > (The number 1.05 below is chosen to lower overhead of messages 50 times,
> > from 5x to 0.1x.  It is related to log(10000)/0.05 ∼ 10000/50.)
> 
> Thanks, but does it indeed make sense to print these progress message
> with logarithmically-increasing intervals?  Why not simply decimate
> the messages by printing them every N words or so?  N could be
> computed at the beginning of the command as function of the size of
> the region to be spell-checked, assuming some suitable value of
> average length of a word.  WDYT?

Without profiling, how to find out “how much overhead is tolerable to
the user”?!

Going logarithmic avoids all these complications.  The REAL purpose
of these messages is “the feedback to the user why the UI is locked now”.

Thanks,
Ilya

P.S.  BTW, there is very little need to lock the UI.  On my (very old
      and slow) system, these 10,000 misspellings are reported in 300ms
      (even though aspell is cygwin — read “slow” — one).  After this
      list of misspellings is swallowed, the rest of marking can be
      done asynchronously, via timers.

      I may try to find more time to investigate (and maybe implement) this…



  reply	other threads:[~2023-04-13 10:23 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-04-12 13:50 [PATCH] 5x speedup of flyspell-buffer Ilya Zakharevich
2023-04-13  6:54 ` Eli Zaretskii
2023-04-13 10:23   ` Ilya Zakharevich [this message]
2023-04-13 10:32     ` Eli Zaretskii
2023-04-13 20:29       ` Ilya Zakharevich
2023-04-14  5:47         ` Eli Zaretskii
2023-04-14  6:39           ` Dr. Arne Babenhauserheide
2023-04-14  6:54             ` Eli Zaretskii
2023-04-15  1:51     ` interacting during (sit-for 0). Was: " Ilya Zakharevich
2023-04-15  2:01       ` Ilya Zakharevich

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

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=ZDfYFuWjkyDjVpVV@math.berkeley.edu \
    --to=nospam-abuse@ilyaz.org \
    --cc=eliz@gnu.org \
    --cc=emacs-devel@gnu.org \
    /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.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.