bug-gnu-emacs
[Top][All Lists]
Advanced

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

bug#31138: Native json slower than json.el


From: yyoncho
Subject: bug#31138: Native json slower than json.el
Date: Mon, 25 Mar 2019 07:44:00 +0200

Hi Eli,


Is this with or without the patch I sent?

It is with the patch (in the two profiler.el reports, the "kill" hooks are not present)
 

> 1. The hooks are not called initially, I am not sure what triggers them. This makes the json parsing extremely
> slow(100 times)

The hooks are not called when decoding strings uses a fixed working
buffer that is created once and never killed.  Then something in your
setup causes this single working buffer to become in-use, and Emacs
then allocates an additional buffer, which is created and killed each
time we need to decode a string.  Both creating and killing of that
buffer runs the buffer-list-update-hook.

Just found that it is not my setup which triggers the issue bug pressing C-g during the parsing:

To reproduce:

(benchmark-run 10 (json-parse-string json-string))
(benchmark-run 10000000 (json-parse-string json-string))
(benchmark-run 10 (json-parse-string json-string))

Press C-g when second benchmark-run is processed. 


> 2. Even without the hooks, the JSON parsing is slower than the emacs -q native parsing when I am running
> my setup. This will require additional investigation.

Please, let's first finish fixing the factors we do understand already
and see what effect that produces.  Otherwise I don't see how we can
make steady progress in this matter.  That is why I sent an initial,
most probably incomplete patch.  Please apply it and see what it fixes
and what it doesn't fix.


I did exactly what you are saying here: I applied the patch and listed the effects:
1. The buffer-list-update-hook is called
2. The patch does not affect the perf difference between emacs -q and my setup.

> I must rely on you in this matter, because I cannot reproduce the
> slowdown on my system.

I realize that and I am trying to be as helpful as possible by sharing all my observations.

Thanks,
Ivan

reply via email to

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