Hi Dmitry,

On Sun, Jul 24, 2016 at 6:16 PM Dmitry Gutov <dgutov@yandex.ru> 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