unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
From: Konstantin Kharlamov <hi-angel@yandex.ru>
To: Eli Zaretskii <eliz@gnu.org>
Cc: 45200@debbugs.gnu.org
Subject: bug#45200: Memory leaks: (garbage-collect) fails to reclaim memory
Date: Sun, 13 Dec 2020 15:07:46 +0300	[thread overview]
Message-ID: <72e40cc93232dd0054977bb7037a5ac38e2165ba.camel@yandex.ru> (raw)
In-Reply-To: <E1koKKT-0007bp-7N@fencepost.gnu.org>

On Sun, 2020-12-13 at 00:53 -0500, Eli Zaretskii wrote:
> > From: Konstantin Kharlamov <hi-angel@yandex.ru>
> > Cc: 45200@debbugs.gnu.org
> > Date: Sun, 13 Dec 2020 01:44:13 +0300
> > 
> > Alright, fair enough. I crafted up another testcase, it may be better. The
> > following code first temporarily disables GC, then it prints "hello" 1000000
> > times, and finally it calls GC manually.
> > 
> > I call `emacs -Q`, then measure PSS, then evaluate the code below, then
> > again measure PSS.
> > 
> >     (let ((i 1000000))
> >       (setq gc-cons-threshold most-positive-fixnum)
> >       (while (> i 0)
> >         (print "hello")
> >         (setq i (- i 1)))
> >       (garbage-collect))
> > 
> > The loop takes 20-30 seconds for me, I think. PSS before is ≈41M, and PSS
> > after is 266.3M. That is ≈200M of memory just vanished.
> 
> That memory hasn't vanished, it is in your libc's malloc arena,
> available for future allocations.  When and if it will be given back
> to the OS is up to the specifics of the malloc implementation.  E.g.,
> when I do the above on MS-Windows, where malloc is more eager to return
> memory to the OS, I end up with just 40 MB footprint, and if I then
> invoke GC manually, the memory goes down almost to the original value:
> 14 MB vs 12 MB after startup.

Your explanation seems likely, because such memory is reused by glibc on later
mallocs, and if I repeat the testcase, I can see that memory does not increase
further, meaning it got reused.






  reply	other threads:[~2020-12-13 12:07 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 [this message]
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
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=72e40cc93232dd0054977bb7037a5ac38e2165ba.camel@yandex.ru \
    --to=hi-angel@yandex.ru \
    --cc=45200@debbugs.gnu.org \
    --cc=eliz@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).