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: Sun, 12 Mar 2023 15:04:30 +0000 [thread overview]
Message-ID: <87v8j6t3i9.fsf@localhost> (raw)
In-Reply-To: <831qluuj7e.fsf@gnu.org>
Eli Zaretskii <eliz@gnu.org> writes:
>> I used 0.7%*RAM because total RAM is the only reasonable metrics. What
>> else can we use to avoid memory over-consumption on low-end machines?
>
> It could be the amount of VM on low-memory machines, but something
> else on high-memory machines. No one said it has to be derived from
> the total VM on both systems with 2 GiB and systems with 128 GiB.
For high-memory machines, the aim is using the limit (100Mb, in what I
proposed), or something close to it. I see no point trying to be
precise here - even what I propose is better when memory is not low, if
we aim for increased, yet safe gc-cons-threshold.
>> Of course, I used implicit assumption that memory usage will scale with
>> gc-cons-threshold linearly. IMHO, it is a safe assumption - the real
>> memory usage increase is slower than linear. For example, see my Emacs
>> loading data for different threshold values:
>
> We are talking about changing the threshold for the session itself,
> not just for the initial load. So the statistics of the initial load
> is not what is needed.
Session statistics is much harder to gather.
It is more realistic to ask people about benchmarking their init.el if
we want to be serious about bumping gc-cons-threshold.
At least, we can then get a good limit for init.el.
>> The 0.7% is to ensure safe 800kb lower bound on low-end computers.
>
> I don't see why it would be the value we need to adhere to. That it's
> the current default doesn't make it sacred, and using it as basis for
> relative figures such as 0.7% has no real basis.
We do not have to adhere to this value. But we know for sure that it is
100% safe. And we probably cannot easily get the data from low-end
machines - much fewer users are using those.
So, instead of arguing about lower limit as well, let's just use the
safe one. We can always bump it later, if we wish to bother.
>> > Anyway, how about if you try running with the threshold you think we
>> > should adopt, and report back after a month or so, say?
>>
>> I am using 250Mb threshold for the last 3 years or so.
>> GCs are sometimes noticeable, but not annoying:
>>
>> - gc-elapsed 297 sec / gcs-done 290 -> ~1 sec per GC
>
> IMO, 1 sec per GC is pretty annoying. It's around 0.165 sec in my
> production session, and it still quite noticeable. I'd be interested
> to hear what others think.
1 sec has little to do with my gc-cons-threshold, I am afraid. It is the
combination of packages I use. I have also seen worse memory
consumption. In particular, when using spell-fu, which copies over local
dictionary in every single buffer.
That's why I am seeing reducing the frequency of GCs as more important
than trying to reduce GC time, which cannot be even halved easily.
>> - memory-limit 6,518,516, stable
>
> ??? That's 6 GiB. Didn't you say your memory footprint stabilizes at
> 1 GiB?
memory-limit is a natively compiled function defined in subr.el.
Signature
(memory-limit)
Documentation
Return an estimate of Emacs virtual memory usage, divided by 1024.
It is different from Lisp object storage size, which is about 1.3Gb.
And Emacs memory usage in system monitor is about 1.7Gb.
> Anyway, we need such statistics from many people and many different
> values of the threshold, and then we will be in a position to decide
> on better default values, and perhaps also on some more dynamic
> adjustments to it. We are not ready for that yet.
Shall we ask about benchmarking init.el with different gc-cons-threshold
values as a start?
--
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>
next prev parent reply other threads:[~2023-03-12 15:04 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 [this message]
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
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
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87v8j6t3i9.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 external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.