Subject: bug#24048: 25.0.95; syntax-ppss can be slow

From: Aaron Jensen <[email-masked]>
Date: Mon, 25 Jul 2016 07:12:42 +0000

Hi Dmitry,

On Sun, Jul 24, 2016 at 6:16 PM Dmitry Gutov <[email-masked]> wrote:

> Is there a way to reproduce it more easier? Maybe without smartparens,
> just with elixir-mode, if it's sufficient to illustrate the performance
> problem (I recall you stating parse-partial-sexp is also unusually slow
> in that major mode, for some reason).
>

Sure, just use elixir-mode and this file
https://gist.githubusercontent.com/aaronjensen/d4cd40347a916dd36c8239afecf64a7d/raw/b52440bb51b96193a365a7f4cc1c8733ba98476f/syntax-ppss-slow-repro.ex

Then do: (benchmark 100 '(syntax-ppss)) at the top of the file and compare
it to doing it within the `chunk_by` function at the bottom of the file.
For me it’s 0.2ms at the top and 5.6ms at the bottom. Smartparens can do
50-100 syntax-ppss calls for every self-insert-command, and 5.6ms is
significant latency to add on to every keypress.

I have a proposed pull to get smartparens to memoize syntax-ppss itself
https://github.com/Fuco1/smartparens/pull/629 but in theory it should be
redundant given syntax-ppss’s built in caching.

P.S. Please send a text email next time, we very much prefer them for
> various reasons, inability to sneak in a tracker like this among them:
>

Unfortunately, modern email clients don’t really offer this as an option
anymore. I started to set up mu4e but it just became too much work to set
up for the sole purpose of being able to send text emails to report emacs
bugs. This probably isn’t the place to debate the merits of easy for most
people to use bug reporting.

<img
> src=3D=22h=ttp://
> pixels.canarymail.io/tracking/07C7B5E0-9441-40AD-9CC3-D2A176741827.=png=22
> id=3D=22141121424AC1=466A74CBB8A45B347C37B=22 style=3D=22width: 1p=x;
> height: 1px;=22>
>

Yeah, canary isn’t even the client I’m using anymore, it’s just what emacs
happened to open when I told it to open my email client to send the bug
report. Unless Inbox is doing its own weirdness this mail should be
tracking pixel free.
-- 
Aaron