[PATCH] Fix for

Stephen J. Turnbull stephen at xemacs.org
Sun Feb 20 21:30:21 EST 2005


>>>>> "Hrvoje" == Hrvoje Niksic <hniksic at xemacs.org> writes:

    Hrvoje> Adrian Aichner <adrian at 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.




More information about the XEmacs-Beta mailing list