emacs-devel
[Top][All Lists]
Advanced

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

Re: NS port: How to debug excessive garbage collection?


From: Keith David Bershatsky
Subject: Re: NS port: How to debug excessive garbage collection?
Date: Thu, 11 Apr 2019 16:04:47 -0700

Thank you, Eli, for helping me to get started down the road towards diagnosing 
the excessive garbage collection issue that I am observing on my end.

The garbage collection issue is most noticeable to the naked eye when the fake 
cursors feature is turned on (e.g., crosshairs) -- using a modified master 
branch from 04/08/2019.  My naked eye does not perceive any obvious problem 
when holding down the right arrow-key in the stock / unmodified version of 
Emacs.

I performed three (3) tests wherein I held the right arrow-key (right-char) 
depressed for a few seconds in the *GNU Emacs* welcome buffer:

    (progn
      (setq timer-list nil
            timer-idle-list nil)
      (add-hook 'post-command-hook (lambda () (message "%s" 
(garbage-collect)))))

1.  Stock / Unmodified master branch as of 04/08/2019 
(a038df77de7b1aa2d73a6478493b8838b59e4982).

2.  Crosshairs turned _off_ using a modified master branch as of 04/08/2019 
(a038df77de7b1aa2d73a6478493b8838b59e4982).

3.  Crosshairs turned _on_ using a modified master branch as of 04/08/2019 
(a038df77de7b1aa2d73a6478493b8838b59e4982).

All tests were performed on the NS platform running OSX 10.6.8 with the 
following build options:

CFLAGS='-Wall -O0 -g3' ./configure \
--with-ns \
--enable-checking='yes,glyphs' \
--enable-check-lisp-object-type \
--without-compress-install \
--without-makeinfo \
--with-gnutls=no \
--with-mailutils \
--without-makeinfo

============================

;;; begin STOCK / UNMODIFIED

((conses 16 12248 37702)
 (symbols 48 1746 1)
 (strings 32 4063 432)
 (string-bytes 1 118324)
 (vectors 16 3486)
 (vector-slots 8 52564 9150)
 (floats 8 9 88)
 (intervals 56 55 25)
 (buffers 992 9))

((conses 16 12249 37701)
 (symbols 48 1746 1)
 (strings 32 4063 432)
 (string-bytes 1 118324)
 (vectors 16 3486)
 (vector-slots 8 52564 9150)
 (floats 8 9 88)
 (intervals 56 55 25)
 (buffers 992 9))

;;; end STOCK UNMODIFIED

============================

;;; begin MODIFIED -- CROSSHAIRS "OFF"

((conses 16 4650 7834)
 (symbols 48 1312 1)
 (strings 32 595 1792)
 (string-bytes 1 36726)
 (vectors 16 3654)
 (vector-slots 8 52893 12656)
 (floats 8 32 261)
 (intervals 56 54 26)
 (buffers 1072 9))

((conses 16 4651 7833)
 (symbols 48 1312 1)
 (strings 32 595 1792)
 (string-bytes 1 36726)
 (vectors 16 3654)
 (vector-slots 8 52893 12656)
 (floats 8 32 261)
 (intervals 56 54 26)
 (buffers 1072 9))

;;; end MODIFIED -- CROSSHAIRS "OFF"

============================

;;; begin MODIFIED -- CROSSHAIRS "ON"

((conses 16 5625 6858)
 (symbols 48 1314 0)
 (strings 32 597 1790)
 (string-bytes 1 36822)
 (vectors 16 3722)
 (vector-slots 8 53307 12242)
 (floats 8 233 421)
 (intervals 56 54 26)
 (buffers 1072 9))

((conses 16 5626 6993)
 (symbols 48 1314 0)
 (strings 32 597 1790)
 (string-bytes 1 36822)
 (vectors 16 3722)
 (vector-slots 8 53307 12242)
 (floats 8 233 547)
 (intervals 56 54 26)
 (buffers 1072 9))

;;; end MODIFIED -- CROSSHAIRS "ON"

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

> Date: [04-11-2019 07:14:53] <11 Apr 2019 17:14:53 +0300>
> From: Eli Zaretskii <address@hidden>
> To: Keith David Bershatsky <address@hidden>
> CC: address@hidden
> Subject: Re: NS port:  How to debug excessive garbage collection?
> 
> > Date: Wed, 10 Apr 2019 20:27:49 -0700
> > From: Keith David Bershatsky <address@hidden>
> >
> > Q:  How should I proceed to debug the excessive garbage collection issue on 
> > the NS port?
> 
> Does that happen with the unmodified master branch, or only with your
> changes?
> 
> In any case, I think you should begin by finding out which type of
> Lisp data contributes the most to the garbage, e.g. by looking at the
> output of 'garbage-collect' (the function).



reply via email to

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