[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).