unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Ihor Radchenko <yantar92@posteo.net>
To: Eli Zaretskii <eliz@gnu.org>
Cc: arne_bab@web.de, spacibba@aol.com, emacs-devel@gnu.org
Subject: Re: Indentation and gc
Date: Mon, 13 Mar 2023 15:01:47 +0000	[thread overview]
Message-ID: <873568d7ac.fsf@localhost> (raw)
In-Reply-To: <83wn3mt33c.fsf@gnu.org>

Eli Zaretskii <eliz@gnu.org> writes:

>> I meant that as long as gc-cons-threshold is much lower (10x or so) than
>> heap size (Lisp object part), we do not need to worry about (1). Only
>> (2) remains a concern.
>
> Your gc-cons-threshold is 250 MiB.  If it's below 0.1 of the size of
> Lisp data, does that mean you 2.5 GiB or more of Lisp data in your
> sessions?  That's a lot.  I have less than 300 MiB, for comparison,
> and this is a session that runs for 25 days non-stop, and has a
> 520 MiB memory footprint.

I said nothing about my settings. Because my settings are tailored to my
usage.

In this discussion, I am trying to deduce something reasonable based on
logic, not just on what works for me personally.

>> 10% also means that 800k gc-cons-threshold does not matter much even
>> with emacs -Q -- it uses over 8Mb memory and thus gc-cons-percentage
>> should dominate the GC, AFAIU.
>
> How did you measure those 8Mb?  On my system, memory-report in
> "emacs -Q" shows less than 2 MiB in object memory.

emacs -Q M-x memory-report on my side gives

Estimated Emacs Memory Usage

   3.2 MiB  Overall Object Memory Usage
   2.2 MiB  Memory Used By Global Variables
   1.3 MiB  Memory Used By Symbol Plists
   334 KiB  Reserved (But Unused) Object Memory
    66 KiB  Total Image Cache Size
    21 KiB  Total Buffer Memory Usage

A sum of all the above is 7.121, which I rounded up.

>> Note that my proposed 100Mb gc-cons-threshold limit will correspond to
>> 1Gb live Lisp objects. For reference, this is what I have now (I got the
>> data using memory-usage package):
>> 
>>    Total in lisp objects: 1.33GB (live 1.18GB, dead  157MB)
>
> We need to align and calibrate our measurement means: what does
> memory-report tell about object memory in that session?  1.18 GiB
> sounds a lot.

Unfortunately, memory-report is not usable in my sessions. M-x
memory-report takes 10+ minutes and then fails with max nesting error
for me. That's why I use memory-usage third-party package, which
produces some info and does it in reasonable time.

>> > Actually, Emacs tries very hard to avoid fragmentation.  That's why it
>> > compacts buffers, and that's why it can relocate buffer text and
>> > string data.
>> 
>> Indeed. But despite all of the best efforts, fragmentation increases if
>> we delay GCs, right?
>
> Not IME, no.  That's why the memory footprint of a typical
> long-running session levels out.

Then what is the mechanism of gc-cons-threshold affecting the Emacs
memory footprint?

-- 
Ihor Radchenko // yantar92,
Org mode contributor,
Learn more about Org mode at <https://orgmode.org/>.
Support Org development at <https://liberapay.com/org-mode>,
or support my work at <https://liberapay.com/yantar92>



  parent reply	other threads:[~2023-03-13 15:01 UTC|newest]

Thread overview: 99+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20230310110747.4hytasakomvdyf7i.ref@Ergus>
2023-03-10 11:07 ` Indentation and gc Ergus
2023-03-10 14:36   ` Dr. Arne Babenhauserheide
2023-03-10 14:54     ` Eli Zaretskii
2023-03-10 19:23       ` Dr. Arne Babenhauserheide
2023-03-11  6:38         ` Eli Zaretskii
2023-03-11  6:55           ` Dr. Arne Babenhauserheide
2023-03-11  7:56             ` Eli Zaretskii
2023-03-11 12:34               ` Dr. Arne Babenhauserheide
2023-03-11 13:08                 ` Eli Zaretskii
2023-03-11 13:31                   ` Ihor Radchenko
2023-03-11 13:44                     ` Eli Zaretskii
2023-03-11 13:53                       ` Ihor Radchenko
2023-03-11 14:09                         ` Eli Zaretskii
2023-03-12 14:20                           ` Ihor Radchenko
2023-03-12 14:40                             ` Eli Zaretskii
2023-03-12 15:04                               ` Ihor Radchenko
2023-03-12 15:26                                 ` Eli Zaretskii
2023-03-13 15:09                                   ` Ihor Radchenko
2023-03-13 15:37                                     ` Eli Zaretskii
2023-03-13 15:45                                       ` Ihor Radchenko
2023-03-13 16:58                                         ` Eli Zaretskii
2023-03-13 18:04                                           ` Ihor Radchenko
2023-03-14 12:19                                             ` Eli Zaretskii
2023-03-15 10:28                                               ` Ihor Radchenko
2023-03-15 12:54                                                 ` Eli Zaretskii
2023-03-15 12:59                                                   ` Ihor Radchenko
2023-03-15 14:20                                                     ` Eli Zaretskii
2023-03-16 10:27                                                       ` Ihor Radchenko
2023-04-06  9:13                                                         ` Ihor Radchenko
2023-04-08  8:04                                                           ` Eli Zaretskii
2023-04-08  8:15                                                             ` Ihor Radchenko
2023-04-08 10:03                                                               ` Eli Zaretskii
2023-04-14 17:07                                                                 ` Ihor Radchenko
2023-04-14 17:56                                                                   ` Eli Zaretskii
2023-03-13 18:14                                         ` Gregor Zattler
2023-03-14 12:30                                           ` Eli Zaretskii
2023-03-14 15:19                                             ` Gregor Zattler
2023-03-11 16:19                     ` Dr. Arne Babenhauserheide
2023-03-12 13:27                       ` Ihor Radchenko
2023-03-12 14:10                         ` Eli Zaretskii
2023-03-12 14:50                           ` Ihor Radchenko
2023-03-12 15:13                             ` Eli Zaretskii
2023-03-12 17:15                               ` Gregor Zattler
2023-03-12 20:07                                 ` Eli Zaretskii
2023-03-13 15:01                               ` Ihor Radchenko [this message]
2023-03-13 15:33                                 ` Eli Zaretskii
2023-03-13 15:39                                   ` Ihor Radchenko
2023-03-13 15:39                                     ` Eli Zaretskii
2023-03-13 16:04                                       ` Ihor Radchenko
2023-03-13 16:52                                         ` Eli Zaretskii
2023-03-14 12:47                                           ` Ihor Radchenko
2023-03-14 13:09                                             ` Eli Zaretskii
2023-03-15 10:29                                               ` Ihor Radchenko
2023-03-13 15:41                                 ` Eli Zaretskii
2023-03-14 13:01                                   ` Ihor Radchenko
2023-03-11 10:54       ` Ihor Radchenko
2023-03-11 11:17         ` Ergus
2023-03-11 11:23           ` Ihor Radchenko
2023-03-11 12:31           ` Eli Zaretskii
2023-03-11 12:39             ` Ihor Radchenko
2023-03-11 12:40               ` Eli Zaretskii
2023-03-11 12:54                 ` Ihor Radchenko
2023-03-11 13:01                   ` Dr. Arne Babenhauserheide
2023-03-11 13:14                   ` Eli Zaretskii
2023-03-11 13:38                     ` Ihor Radchenko
2023-03-11 13:46                       ` Eli Zaretskii
2023-03-11 13:54                         ` Ihor Radchenko
2023-03-11 14:11                           ` Eli Zaretskii
2023-03-11 14:18                             ` Ihor Radchenko
2023-03-11 14:20                               ` Eli Zaretskii
2023-03-11 14:31                                 ` Ihor Radchenko
2023-03-11 15:32                                   ` Eli Zaretskii
2023-03-11 15:52                                     ` Lynn Winebarger
2023-03-11 16:24                                       ` Eli Zaretskii
2023-03-11 17:10                                     ` Gregor Zattler
2023-03-11 17:25                                       ` Eli Zaretskii
2023-03-11 18:35                                         ` Gregor Zattler
2023-03-11 18:49                                           ` Eli Zaretskii
2023-03-13 12:45                                     ` Ihor Radchenko
2023-03-13 12:51                                       ` Eli Zaretskii
2023-06-14 14:16                                         ` Ihor Radchenko
2023-06-14 15:36                                           ` Eli Zaretskii
2023-06-14 15:58                                             ` Ihor Radchenko
2023-06-14 16:07                                               ` Eli Zaretskii
2023-06-16 10:00                                                 ` Ihor Radchenko
2023-06-16 10:33                                                   ` Eli Zaretskii
2023-06-16 11:03                                                     ` Ihor Radchenko
2023-06-16 11:34                                                       ` Eli Zaretskii
2023-06-21 10:37                                                         ` Ihor Radchenko
2023-06-21 11:11                                                           ` Eli Zaretskii
2023-03-11 13:00                 ` Po Lu
2023-03-11 12:37         ` Eli Zaretskii
2023-03-11 13:10           ` Ihor Radchenko
2023-03-11 13:38             ` Eli Zaretskii
2023-03-10 14:52   ` Eli Zaretskii
2023-03-10 21:30     ` Ergus
2023-03-11  6:52       ` Eli Zaretskii
2023-03-21  7:11   ` Jean Louis
2023-03-21  7:27     ` Emanuel Berg

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=873568d7ac.fsf@localhost \
    --to=yantar92@posteo.net \
    --cc=arne_bab@web.de \
    --cc=eliz@gnu.org \
    --cc=emacs-devel@gnu.org \
    --cc=spacibba@aol.com \
    /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).