unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Pip Cet <pipcet@protonmail.com>
To: "Gerd Möllmann" <gerd.moellmann@gmail.com>
Cc: Helmut Eller <eller.helmut@gmail.com>,
	Eli Zaretskii <eliz@gnu.org>,
	emacs-devel@gnu.org
Subject: Re: MPS: weak hash tables
Date: Sat, 06 Jul 2024 18:30:04 +0000	[thread overview]
Message-ID: <LaAidEquXw1uS0M0PerNNIXa13SRTYeVASTYtQtSociIB7rnocnDBis4xvBnCkVxKwWI-fhJW96AOtQgn52s9mL0cwG466l2O25xvHtjxZ0=@protonmail.com> (raw)
In-Reply-To: <m21q46xwdq.fsf@pro2.fritz.box>

On Saturday, July 6th, 2024 at 17:28, Gerd Möllmann <gerd.moellmann@gmail.com> wrote:
> Pip Cet pipcet@protonmail.com writes:
> 
> > > We have already this in bignum.c
> > > 
> > > mp_set_memory_functions (xmalloc, xrealloc_for_gmp, xfree_for_gmp);
> > > 
> > > Haven't read the GMP docs yet, but that looks like something that could
> > > be used.
> > 
> > Patch attached, couldn't resist :-)
> 
> 
> Haha :-). I'm all for it!
> 
> > Memory usage is perfectly acceptable with this patch, but it does do a
> > lot of GC.
> 
> 
> What do the timings say?

Horrible things. Unacceptably slow. Sufficiently so that I looked into the generation parameters and randomly changed them, and now it's faster than vanilla Emacs?! Does that make sense to you, or is it more likely I'm being tricked by something silly like CPU speed?

All I did was change:

-  mps_gen_param_s gens[] = { { 128000, 0.8 }, { 5 * 128000, 0.4 } };
+  mps_gen_param_s gens[] = { { 64000, 0.8 }, { 5 * 64000, 0.4 }, { 10 * 64000, 0.3 }, };

but that was a totally random guess...

Again, I may just be doing something wrong.

> > > > I believe Eli is right, though, that we should deviate from what Emacs
> > > > usually does as little as possible until we've got things working.
> > > > That means just keeping track of how much we've allocated and calling
> > > > garbage_collect via maybe_garbage_collect, I think.
> > 
> > > Can you explain? I mean I agree in general, but in this case I'm not so
> > > sure. What I've currently implemented is basically a function of the
> > > number of allocated finalizable objects and only finalizable objects pay
> > > the price. The size of allocated memory overall, i.e. counting the bytes
> > > in alloc_impl doesn't contain the information.
> > 
> > But it's probably a better indicator of how much GC activity happened,
> > and that influences how many finalization messages there would be,
> > assuming that an approximately constant percentage of objects is
> > finalizable...
> 
> 
> Hm. I'm not really convinced the total amount allocated is a better
> predictor for how many finalzation msgs we might expect than the real
> number of objects for which we might expect finalization messages.

Now that you put it like that, maybe the case I've been worrying about (phase one of the program creates a huge number of live finalizable objects; phase two stops creating them; finalizable objects never get finalized because no new ones are being created) isn't that likely. Anyway, your code works, so it wins :-)

> But whatever. Something for later, maybe.

Definitely.

Pip



  parent reply	other threads:[~2024-07-06 18:30 UTC|newest]

Thread overview: 196+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-07-01 20:47 MPS: weak hash tables Gerd Möllmann
2024-07-01 21:16 ` Pip Cet
2024-07-01 23:10   ` Pip Cet
2024-07-02  4:19     ` Gerd Möllmann
2024-07-02  5:47     ` Gerd Möllmann
2024-07-02  6:23       ` Pip Cet
2024-07-02  6:55         ` Gerd Möllmann
2024-07-02  9:15           ` Pip Cet
2024-07-02  9:37             ` Gerd Möllmann
2024-07-02 10:11               ` Gerd Möllmann
2024-07-02 11:36               ` Gerd Möllmann
2024-07-02 13:15                 ` Eli Zaretskii
2024-07-02 13:16                   ` Gerd Möllmann
2024-07-02 13:42                     ` Eli Zaretskii
2024-07-02 15:03                       ` Pip Cet
2024-07-02 15:17                         ` Helmut Eller
2024-07-02 15:35                         ` Eli Zaretskii
2024-07-02 16:34                           ` Pip Cet
2024-07-02 18:20                             ` Eli Zaretskii
2024-07-02 20:16                               ` Pip Cet
2024-07-03  6:30                               ` Gerd Möllmann
2024-07-03 11:23                                 ` Eli Zaretskii
2024-07-03 11:28                                   ` Gerd Möllmann
2024-07-02 13:02             ` Eli Zaretskii
2024-07-02 12:45           ` Eli Zaretskii
2024-07-02 11:23         ` Helmut Eller
2024-07-03  6:11           ` Gerd Möllmann
2024-07-03  6:33             ` Pip Cet
2024-07-03  7:04               ` Gerd Möllmann
2024-07-03  7:24                 ` Helmut Eller
2024-07-03  7:25                 ` Pip Cet
2024-07-03  7:38                   ` Gerd Möllmann
2024-07-03  8:26                     ` Gerd Möllmann
2024-07-03  9:31                       ` Pip Cet
2024-07-03 10:22                         ` Gerd Möllmann
2024-07-03 10:41                           ` Pip Cet
2024-07-03 11:17                             ` Gerd Möllmann
2024-07-03 20:20                           ` Pip Cet
2024-07-04  7:17                             ` Gerd Möllmann
2024-07-04 15:24                               ` Pip Cet
2024-07-04 16:53                                 ` Gerd Möllmann
2024-07-04 20:05                                   ` Pip Cet
2024-07-05  3:50                                     ` Gerd Möllmann
2024-07-05 12:08                                       ` Pip Cet
2024-07-05 12:54                                         ` Gerd Möllmann
2024-07-05 13:27                                         ` Eli Zaretskii
2024-07-05 20:35                                           ` Pip Cet
2024-07-06  6:10                                             ` Eli Zaretskii
2024-07-06  6:31                                               ` Pip Cet
2024-07-06  7:00                                                 ` Eli Zaretskii
2024-07-06  7:40                                                   ` Gerd Möllmann
2024-07-06  9:13                                                   ` Pip Cet
2024-07-06 10:59                                                     ` Eli Zaretskii
2024-07-05 18:14                                         ` Helmut Eller
2024-07-05 19:25                                           ` Pip Cet
2024-07-06  3:39                                             ` Gerd Möllmann
2024-07-06  5:58                                               ` Pip Cet
2024-07-06  6:20                                                 ` Gerd Möllmann
2024-07-06  6:29                                                   ` Pip Cet
2024-07-06  6:51                                                     ` Gerd Möllmann
2024-07-06  6:46                                                 ` Eli Zaretskii
2024-07-06  9:23                                                   ` Pip Cet
2024-07-06 11:03                                                     ` Eli Zaretskii
2024-07-06  3:38                                           ` Gerd Möllmann
2024-07-06  9:47                                             ` Helmut Eller
2024-07-06 10:38                                               ` Gerd Möllmann
2024-07-06 11:13                                               ` Eli Zaretskii
2024-07-06 13:50                                                 ` Helmut Eller
2024-07-06 13:59                                                   ` Eli Zaretskii
2024-07-06 14:38                                                     ` Gerd Möllmann
2024-07-06 16:20                                                     ` Helmut Eller
2024-07-06 16:33                                                       ` Eli Zaretskii
2024-07-06 16:48                                                         ` Helmut Eller
2024-07-06 17:21                                                           ` Eli Zaretskii
2024-07-06 17:59                                                             ` Helmut Eller
2024-07-06 18:14                                                             ` Gerd Möllmann
2024-07-06 18:56                                                               ` Eli Zaretskii
2024-07-06 11:37                                               ` Pip Cet
2024-07-06 11:40                                               ` Gerd Möllmann
2024-07-06 11:57                                               ` Gerd Möllmann
2024-07-06 12:03                                                 ` Eli Zaretskii
2024-07-06 12:16                                                   ` Gerd Möllmann
2024-07-06 12:23                                                     ` Pip Cet
2024-07-06 12:39                                                       ` Gerd Möllmann
2024-07-06 12:30                                                     ` Eli Zaretskii
2024-07-06 12:43                                                       ` Gerd Möllmann
2024-07-06 13:53                                                         ` Eli Zaretskii
2024-07-06 12:36                                                     ` Gerd Möllmann
2024-07-06 14:00                                                       ` Helmut Eller
2024-07-06 14:08                                                         ` Gerd Möllmann
2024-07-06 14:24                                                           ` Gerd Möllmann
2024-07-06 14:44                                                           ` Helmut Eller
2024-07-06 14:52                                                             ` Gerd Möllmann
2024-07-06 15:49                                                               ` Pip Cet
2024-07-06 16:31                                                                 ` Gerd Möllmann
2024-07-06 16:56                                                                   ` Pip Cet
2024-07-06 17:28                                                                     ` Gerd Möllmann
2024-07-06 17:31                                                                       ` Gerd Möllmann
2024-07-06 18:30                                                                       ` Pip Cet [this message]
2024-07-06 20:00                                                                         ` Gerd Möllmann
2024-07-06 20:09                                                                           ` Ihor Radchenko
2024-07-07  3:55                                                                             ` Gerd Möllmann
2024-07-07  4:27                                                                             ` Gerd Möllmann
2024-07-07  4:30                                                                               ` Gerd Möllmann
2024-07-07  6:38                                                                               ` Pip Cet
2024-07-07  7:31                                                                                 ` Gerd Möllmann
2024-07-07  7:44                                                                                 ` Helmut Eller
2024-07-07  8:10                                                                                   ` Gerd Möllmann
2024-07-07  8:24                                                                                     ` Gerd Möllmann
2024-07-07  8:47                                                                                       ` Pip Cet
2024-07-07  9:24                                                                                         ` Gerd Möllmann
2024-07-07  9:26                                                                                           ` Gerd Möllmann
2024-07-07 10:47                                                                                           ` Eli Zaretskii
2024-07-07 11:19                                                                                             ` Gerd Möllmann
2024-07-07 14:09                                                                                               ` Eli Zaretskii
2024-07-07 14:15                                                                                                 ` Gerd Möllmann
2024-07-07 14:42                                                                                                   ` Eli Zaretskii
2024-07-07 14:52                                                                                                     ` Gerd Möllmann
2024-07-07 15:34                                                                                                       ` Eli Zaretskii
2024-07-07 15:36                                                                                                         ` Gerd Möllmann
2024-07-07 16:00                                                                                                           ` Eli Zaretskii
2024-07-07 17:08                                                                                                             ` Gerd Möllmann
2024-07-07 17:49                                                                                                               ` Eli Zaretskii
2024-07-07 18:15                                                                                                                 ` Gerd Möllmann
2024-07-07 18:22                                                                                                                   ` Eli Zaretskii
2024-07-07 18:29                                                                                                                     ` Gerd Möllmann
2024-07-07 14:16                                                                                                 ` Gerd Möllmann
2024-07-07 14:18                                                                                                   ` Gerd Möllmann
2024-07-07 10:57                                                                                           ` Pip Cet
2024-07-07 11:35                                                                                             ` Gerd Möllmann
2024-07-07 11:48                                                                                               ` Gerd Möllmann
2024-07-07 14:07                                                                                                 ` Gerd Möllmann
2024-07-07 14:21                                                                                                 ` Pip Cet
2024-07-07 14:27                                                                                                   ` Gerd Möllmann
2024-07-07 15:22                                                                                                   ` Helmut Eller
2024-07-07 15:40                                                                                                     ` Gerd Möllmann
2024-07-07 15:52                                                                                                       ` Helmut Eller
2024-07-07 15:56                                                                                                         ` Gerd Möllmann
2024-07-07 15:57                                                                                                         ` Pip Cet
2024-07-07 16:26                                                                                                           ` Helmut Eller
2024-07-07 17:03                                                                                                             ` Gerd Möllmann
2024-07-07 18:40                                                                                                               ` Gerd Möllmann
2024-07-07 18:53                                                                                                                 ` Helmut Eller
2024-07-07 19:00                                                                                                                   ` Gerd Möllmann
2024-07-07 19:31                                                                                                                     ` Pip Cet
2024-07-07 19:36                                                                                                                       ` Gerd Möllmann
2024-07-08  9:11                                                                                                                     ` MPS: commit limit Gerd Möllmann
2024-07-10  6:46                                                                                                                       ` Helmut Eller
2024-07-10  7:08                                                                                                                         ` Gerd Möllmann
2024-07-16 15:16                                                                                                                       ` Helmut Eller
2024-07-16 15:27                                                                                                                         ` Eli Zaretskii
2024-07-16 15:43                                                                                                                           ` Helmut Eller
2024-07-16 15:54                                                                                                                             ` Eli Zaretskii
2024-07-16 16:29                                                                                                                               ` Helmut Eller
2024-07-16 16:39                                                                                                                                 ` Gerd Möllmann
2024-07-16 16:43                                                                                                                                   ` Pip Cet
2024-07-16 16:56                                                                                                                                     ` Gerd Möllmann
2024-07-16 15:32                                                                                                                         ` Eli Zaretskii
2024-07-16 16:27                                                                                                                           ` Helmut Eller
2024-07-16 18:49                                                                                                                             ` Pip Cet
2024-07-17  6:15                                                                                                                               ` Helmut Eller
2024-07-16 16:32                                                                                                                         ` Pip Cet
2024-07-16 16:48                                                                                                                           ` Helmut Eller
2024-07-08  5:11                                                                                                             ` MPS: weak hash tables Pip Cet
2024-07-08  5:17                                                                                                               ` Gerd Möllmann
2024-07-08  5:37                                                                                                                 ` Pip Cet
2024-07-08  5:43                                                                                                                   ` Gerd Möllmann
2024-07-07  8:49                                                                                       ` Gerd Möllmann
2024-07-08  9:16                                                         ` Andrea Corallo
2024-07-08  9:24                                                           ` Gerd Möllmann
2024-07-08  9:54                                                             ` Andrea Corallo
2024-07-08 10:10                                                               ` Gerd Möllmann
2024-07-08 11:57                                                             ` MPS: out-of-memory Eli Zaretskii
2024-07-08 13:46                                                               ` Gerd Möllmann
2024-07-08 16:45                                                                 ` Pip Cet
2024-07-08 18:26                                                                   ` Gerd Möllmann
2024-07-08 19:44                                                                     ` Pip Cet
2024-07-09  3:58                                                                       ` Gerd Möllmann
2024-07-08 18:27                                                                   ` Helmut Eller
2024-07-08 18:31                                                                     ` Gerd Möllmann
2024-07-08 19:14                                                                       ` Eli Zaretskii
2024-07-08 19:35                                                                         ` Gerd Möllmann
2024-07-08 19:08                                                                     ` Eli Zaretskii
2024-07-08 19:31                                                                     ` Pip Cet
2024-07-04 15:22                         ` MPS: weak hash tables Helmut Eller
2024-07-04 15:33                           ` Pip Cet
2024-07-04 16:46                             ` Gerd Möllmann
2024-07-04 16:43                           ` Gerd Möllmann
2024-07-02 13:50         ` Mattias Engdegård
2024-07-02  6:57     ` Gerd Möllmann
2024-07-02  7:15       ` Gerd Möllmann
2024-07-02  8:46         ` Ihor Radchenko
2024-07-02  8:59           ` Gerd Möllmann
2024-07-02  9:33             ` Ihor Radchenko
2024-07-02  9:35               ` Pip Cet
2024-07-02 11:03                 ` Ihor Radchenko

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='LaAidEquXw1uS0M0PerNNIXa13SRTYeVASTYtQtSociIB7rnocnDBis4xvBnCkVxKwWI-fhJW96AOtQgn52s9mL0cwG466l2O25xvHtjxZ0=@protonmail.com' \
    --to=pipcet@protonmail.com \
    --cc=eliz@gnu.org \
    --cc=eller.helmut@gmail.com \
    --cc=emacs-devel@gnu.org \
    --cc=gerd.moellmann@gmail.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).