From: Juri Linkov <juri@jurta.org>
Cc: ttn@gnu.org, eliz@gnu.org, emacs-devel@gnu.org
Subject: GC (was: lists.texi)
Date: Fri, 24 Jun 2005 22:02:45 +0300 [thread overview]
Message-ID: <87oe9v3a62.fsf_-_@jurta.org> (raw)
In-Reply-To: <200506222025.j5MKP8S00642@raven.dms.auburn.edu> (Luc Teirlinck's message of "Wed, 22 Jun 2005 15:25:08 -0500 (CDT)")
> My test case constructed ten thousand times a list of size 1000,
> triggering a lot of garbage collections. In a freshly started Emacs,
> the ring-elements function I propose to install ran the test in 11
> seconds, slightly over 5 being spent in gc. This gives between 5 and
> 6 for the function itself. The "abstract" version ran 37 seconds, a
> little bit over 5 in gc, giving 31 to 32 for the function itself. In
> other words, avoiding the `ring-ref' overhead makes the function run
> more than five times faster, but the amount of consing stays the same.
>
> If I run the same test in a somewhat older Emacs, the functions
> themselves still take 5 to 6 and 31 to 32 seconds, but now they both
> spend 17.5 seconds doing gc (instead of slightly more than 5).
>
> I guess that in a really big Emacs, gc will take even much longer. It
> is not very surprising that the more objects gc has to check, the
> longer it takes. I believe this pretty much explains the gradual
> slowdown of Emacs as it grows older (and hence bigger).
Yes, indeed GC is what causes the slowdown. With the option
`garbage-collection-messages' set to t, it is clearly visible that in
a big Emacs session GC takes too much time. For example, I can see
that each GC takes about 1 sec. The formula (/ gc-elapsed gcs-done)
with real values (/ 1788.2 1597) gives 1.12 sec. This is substantial
time for every GC to contribute to the overall slowdown.
--
Juri Linkov
http://www.jurta.org/emacs/
next prev parent reply other threads:[~2005-06-24 19:02 UTC|newest]
Thread overview: 46+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-06-18 23:19 lists.texi Luc Teirlinck
2005-06-19 0:01 ` lists.texi Luc Teirlinck
2005-06-19 0:15 ` lists.texi Luc Teirlinck
2005-06-19 0:37 ` lists.texi Luc Teirlinck
2005-06-19 6:37 ` lists.texi David Kastrup
2005-06-19 15:55 ` lists.texi Richard Stallman
2005-06-19 17:47 ` lists.texi Luc Teirlinck
2005-06-20 17:52 ` lists.texi Richard Stallman
2005-06-20 23:12 ` lists.texi Luc Teirlinck
2005-06-21 5:13 ` lists.texi David Kastrup
2005-06-21 15:13 ` lists.texi Richard M. Stallman
2005-06-21 16:35 ` lists.texi Thien-Thi Nguyen
2005-06-21 19:00 ` lists.texi Luc Teirlinck
2005-06-21 21:56 ` lists.texi Thien-Thi Nguyen
2005-06-21 19:45 ` lists.texi Luc Teirlinck
2005-06-21 20:58 ` lists.texi Luc Teirlinck
2005-06-21 22:09 ` lists.texi Thien-Thi Nguyen
2005-06-22 16:28 ` lists.texi Juri Linkov
2005-06-22 19:27 ` lists.texi Eli Zaretskii
2005-06-22 18:44 ` lists.texi Luc Teirlinck
2005-06-22 20:25 ` lists.texi Luc Teirlinck
2005-06-23 16:53 ` lists.texi Richard M. Stallman
2005-06-24 19:02 ` Juri Linkov [this message]
2005-06-24 19:02 ` GC (was: lists.texi) Juri Linkov
2005-06-24 21:08 ` Eli Zaretskii
2005-06-24 21:54 ` Juri Linkov
2005-06-24 23:52 ` Luc Teirlinck
2005-06-25 0:51 ` Miles Bader
2005-06-25 9:48 ` Eli Zaretskii
2005-06-25 11:58 ` GC Adrian Aichner
2005-06-25 12:53 ` GC Miles Bader
2005-06-25 21:53 ` GC Adrian Aichner
2005-06-26 0:02 ` GC Miles Bader
2005-06-26 8:20 ` GC Adrian Aichner
2005-06-26 18:51 ` GC Eli Zaretskii
2005-06-26 23:43 ` GC Juri Linkov
2005-06-27 5:38 ` GC Richard M. Stallman
2005-06-26 22:42 ` GC Richard M. Stallman
2005-06-25 12:15 ` GC (was: lists.texi) Miles Bader
2005-06-25 13:10 ` GC Gaëtan LEURENT
2005-06-25 14:48 ` GC Eli Zaretskii
2005-06-25 14:45 ` GC (was: lists.texi) Eli Zaretskii
2005-06-25 16:40 ` Richard M. Stallman
2005-06-28 4:55 ` GC Stefan Monnier
2005-06-28 21:29 ` GC Richard M. Stallman
2005-07-11 17:00 ` GC Stefan Monnier
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87oe9v3a62.fsf_-_@jurta.org \
--to=juri@jurta.org \
--cc=eliz@gnu.org \
--cc=emacs-devel@gnu.org \
--cc=ttn@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).