GNU bug report logs -
#20154
25.0.50; json-encode-string is too slow for large strings
Previous Next
Reported by: Dmitry Gutov <dgutov <at> yandex.ru>
Date: Fri, 20 Mar 2015 14:27:01 UTC
Severity: normal
Found in version 25.0.50
Done: Dmitry Gutov <dgutov <at> yandex.ru>
Bug is archived. No further changes may be made.
Full log
Message #32 received at 20154 <at> debbugs.gnu.org (full text, mbox):
> Date: Fri, 20 Mar 2015 18:52:26 +0200
> From: Dmitry Gutov <dgutov <at> yandex.ru>
> CC: 20154 <at> debbugs.gnu.org
>
> On 03/20/2015 06:44 PM, Eli Zaretskii wrote:
>
> > To see how much of the time is taken by json-encode-char, replace it
> > with something trivial, like 1+, and see what speedup you get.
>
> Yep. Replacing the second definition with
>
> (defun json-encode-big-string (str)
> (with-temp-buffer
> (insert str)
> (goto-char (point-min))
> (while (re-search-forward "[\"\\/\b\f\b\r\t]\\|[^ -~]" nil t)
> (replace-match "z" t t))
> (format "\"%s\"" (buffer-string))))
>
> still makes it take ~100ms on the example string (as opposed to 2ms in
> the optimized Python implementation).
That's not what I see here. I cannot get the time above 1 sec even
with a 1000 time longer input string, if I replace json-encode-char
with 1+.
So I think your 100ms is the constant overhead of some kind.
This bug report was last modified 10 years and 38 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.