>>>> "Hrvoje" == Hrvoje Niksic
<hniksic(a)xemacs.org> writes:
Hrvoje> Adrian Aichner <adrian(a)xemacs.org> writes:
> I identified the performance issue today.
>
> It's present in both (defun operate-on-non-matching-lines
> (regexp delete kill &optional beg end) and (defun
> operate-on-matching-lines (regexp delete kill &optional beg
> end) due to the way they the count lines (a feature the GNU
> Emacs version does not have) by first concating each match to a
> string. This causes enormuous consing and the resulting GC
> activity makes performance unbearable at the default
> gc-cons-threshold value.
Hrvoje> Why was this not a problem in pre-21.5 XEmacsen? Or was
Hrvoje> it something that was just as slow, only it was never
Hrvoje> noticed?
I suspect that there was no GCing until about a year ago. Around the
release of 21.4.12, Martin provided a patch to count big string
allocation in the consing counter. Before then, it was possible to
ENOMEM XEmacs with
(while t (make-string 10000 ?a))
because big string allocation wasn't included in the cons count.
--
Institute of Policy and Planning Sciences
http://turnbull.sk.tsukuba.ac.jp
University of Tsukuba Tennodai 1-1-1 Tsukuba 305-8573 JAPAN
Ask not how you can "do" free software business;
ask what your business can "do for" free software.