From: Stefan Monnier <monnier@iro.umontreal.ca>
To: Konstantin Kharlamov <hi-angel@yandex.ru>
Cc: 45200@debbugs.gnu.org
Subject: bug#45200: Memory leaks: (garbage-collect) fails to reclaim memory
Date: Sun, 24 Jan 2021 13:51:41 -0500 [thread overview]
Message-ID: <jwvlfcinpmk.fsf-monnier+emacs@gnu.org> (raw)
In-Reply-To: <dd4a240ab3ff14d8f04d02b2504611a4d9f3f816.camel@yandex.ru> (Konstantin Kharlamov's message of "Sat, 12 Dec 2020 21:43:10 +0300")
> # Steps to reproduce:
>
> 1. Run `mkdir /tmp/.emacs.d`
> 2. Run emacs as `HOME=/tmp/ emacs`, and measure its PSS
> 3. Create a file /tmp/.emacs.d/early-init.el with content:
>
> ;; only run garbage collection on idle
> (setq gc-cons-threshold most-positive-fixnum)
> (run-with-idle-timer 2 t (lambda () (garbage-collect)))
>
> 4. Run emacs as `HOME=/tmp/ emacs`, evaluate (garbage-collect), then measure its PSS
>
> ## Expected
>
> Size has no statistically-significant difference, because in both
> cases we garbage-collected memory.
I disagree with this expectation: it is perfectly normal for the amount
of memory allocated to the Emacs process to be left higher if you delay
the GC. There are various reasons for that:
- fragmentation, of course. Not much we can do about it short of using
a moving collector.
- the desire to keep memory around rather than return it to the OS,
under the assumption that we'll need it again soon.
And it's not considered as a memory leak as long as that memory has
indeed been needed in the past and that future allocations can still
make use of it.
Eli wrote:
> Thanks, but is it really a good idea to call malloc_trim each time we
> free some chunk of memory?
I think if we want to call `malloc_trim`, the obvious place would be to
do it at the end of `garbage_collect`.
Stefan
next prev parent reply other threads:[~2021-01-24 18:51 UTC|newest]
Thread overview: 88+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-12-12 18:43 bug#45200: Memory leaks: (garbage-collect) fails to reclaim memory Konstantin Kharlamov
2020-12-12 20:15 ` Eli Zaretskii
2020-12-12 22:44 ` Konstantin Kharlamov
2020-12-12 22:59 ` Lars Ingebrigtsen
2020-12-13 6:08 ` Eli Zaretskii
2020-12-13 5:53 ` Eli Zaretskii
2020-12-13 12:07 ` Konstantin Kharlamov
2021-01-24 15:24 ` bug#45200: [PATCH] Force Glibc to free the memory freed Konstantin Kharlamov
2021-01-24 15:40 ` Eli Zaretskii
2021-01-25 22:17 ` DJ Delorie
2021-01-25 22:28 ` Konstantin Kharlamov
2021-01-26 14:55 ` Eli Zaretskii
2021-01-26 15:02 ` Konstantin Kharlamov
2021-01-26 15:30 ` Stefan Monnier
2021-02-02 21:17 ` Konstantin Kharlamov
2021-02-03 4:45 ` Stefan Monnier
2021-02-03 4:50 ` Stefan Monnier
2021-02-03 6:04 ` Konstantin Kharlamov
2021-02-03 7:07 ` Eli Zaretskii
2021-02-03 7:15 ` Konstantin Kharlamov
2021-02-03 7:39 ` martin rudalics
2021-02-03 8:23 ` Konstantin Kharlamov
2021-02-03 9:35 ` martin rudalics
2021-02-03 9:49 ` Konstantin Kharlamov
2021-02-03 10:35 ` Konstantin Kharlamov
2021-02-03 11:06 ` martin rudalics
2021-02-03 11:08 ` Konstantin Kharlamov
2021-02-03 11:16 ` Konstantin Kharlamov
2021-02-03 12:56 ` martin rudalics
2021-02-03 13:00 ` Konstantin Kharlamov
2021-02-03 15:14 ` martin rudalics
2021-02-03 15:15 ` Stefan Monnier
2021-02-03 15:29 ` Konstantin Kharlamov
2021-02-03 16:02 ` Stefan Monnier
2021-02-03 16:35 ` Konstantin Kharlamov
2021-02-03 16:51 ` Stefan Monnier
2021-02-03 19:30 ` DJ Delorie
2021-02-03 19:36 ` DJ Delorie
2021-02-03 20:28 ` Konstantin Kharlamov
2021-02-03 20:51 ` DJ Delorie
2021-05-18 20:12 ` Konstantin Kharlamov
2021-05-19 4:11 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2021-05-19 4:26 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2021-05-19 6:46 ` Konstantin Kharlamov
2021-05-19 9:47 ` Eli Zaretskii
2021-05-19 9:55 ` Konstantin Kharlamov
2021-05-19 10:09 ` Eli Zaretskii
2021-02-03 14:51 ` Eli Zaretskii
2021-02-03 15:01 ` Konstantin Kharlamov
2021-02-03 14:44 ` Eli Zaretskii
2021-02-03 15:12 ` Andreas Schwab
2021-02-03 19:25 ` DJ Delorie
2021-02-03 19:49 ` Eli Zaretskii
2021-02-03 21:00 ` DJ Delorie
2021-02-03 20:24 ` Stefan Monnier
2021-02-03 20:42 ` DJ Delorie
2021-02-03 22:07 ` Stefan Monnier
2021-02-03 22:21 ` DJ Delorie
2021-02-03 23:32 ` Stefan Monnier
2021-02-04 0:31 ` DJ Delorie
2021-02-04 3:26 ` Stefan Monnier
2021-02-04 3:38 ` DJ Delorie
2021-02-04 3:55 ` Stefan Monnier
2021-02-04 4:02 ` DJ Delorie
2021-02-04 4:19 ` Stefan Monnier
2021-02-04 4:26 ` DJ Delorie
2021-02-04 4:04 ` DJ Delorie
2021-02-03 15:15 ` Stefan Monnier
2021-01-26 14:49 ` Eli Zaretskii
2021-01-26 16:13 ` DJ Delorie
2021-12-04 23:20 ` bug#45200: Memory leaks: (garbage-collect) fails to reclaim memory Lars Ingebrigtsen
2021-12-05 6:23 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2021-12-05 8:26 ` Eli Zaretskii
2022-05-01 9:43 ` bug#45200: Wishlist: There should be a `malloc-trim' function Lars Ingebrigtsen
2021-12-05 19:59 ` bug#45200: Memory leaks: (garbage-collect) fails to reclaim memory Lars Ingebrigtsen
2021-12-05 7:07 ` Eli Zaretskii
2021-01-24 18:51 ` Stefan Monnier [this message]
2021-01-24 19:00 ` Konstantin Kharlamov
2021-01-24 19:06 ` Konstantin Kharlamov
2021-01-24 19:55 ` Eli Zaretskii
2021-01-24 19:12 ` Stefan Monnier
2021-01-24 20:00 ` Konstantin Kharlamov
2021-01-24 20:11 ` Eli Zaretskii
2021-01-24 20:21 ` Konstantin Kharlamov
2021-01-24 21:20 ` Stefan Monnier
2021-01-24 21:26 ` Konstantin Kharlamov
2021-01-24 21:41 ` Stefan Monnier
2021-01-24 21:55 ` Konstantin Kharlamov
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=jwvlfcinpmk.fsf-monnier+emacs@gnu.org \
--to=monnier@iro.umontreal.ca \
--cc=45200@debbugs.gnu.org \
--cc=hi-angel@yandex.ru \
/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).