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

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

bug#46761: 28.0.50; Speed up json.el encoding


From: Dmitry Gutov
Subject: bug#46761: 28.0.50; Speed up json.el encoding
Date: Sat, 27 Feb 2021 20:51:05 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0

On 25.02.2021 03:33, Basil L. Contovounesios wrote:
Severity: wishlist
Tags: patch

The attached patch speeds up json-encode by inserting into a buffer
rather than concatenating strings.  It does so backward compatibly by
creating a new json--print-* namespace that mirrors the existing
json-encode-* namespace, cleaning it up a bit and reducing code
duplication in the process.

Using my usual benchmark from bug#40693#89:

   canada.json
   old (1.412693239 96 0.736882091)
   new (1.154423962 32 0.248241551)

   citm_catalog.json
   old (0.676292855 68 0.5285956769999993)
   new (0.306573098 12 0.0965493740000003)

   twitter.json
   old (0.353447016 40 0.28536439900000055)
   new (0.142140227  8 0.05943713899999992)

Note that one of the unit tests depends on the patch to map.el in
bug#46754 in order to pass.

Looking good.

I'm guessing there is an approximate size where structures smaller than that size will get slower to encode because of this change (creating a temp buffer and switching to it are not entirely free), but I can't think of a use case where this would matter.





reply via email to

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