On Sat, May 22, 2021 at 5:49 AM David Bremner <da...@tethera.net> wrote:
> Felipe Contreras <felipe.contre...@gmail.com> writes:
> > Ruby is a gc language, we shouldn't be doing workaround to free memory when 
> > Ruby is perfectly
> > capable of doing so.
> >
> > The problem is that talloc wants to be smart, and Ruby and talloc both 
> > fight to free memory. We can
> > let Ruby win by stealing all the objects from talloc control.
> >
> > Thanks to the previous cleanup patches it's now possible to easily do this.
> >
> > In order to test this series I've used the following script:
> I still haven't had a chance to look at the series, but how about making
> this script either a test or a performance-test, as appropriate?

I gave this a try, and even compiled Ruby with --with-valgrind
(apparently Arch Linux doesn't do that), but doesn't seem to work

% valgrind /opt/ruby/bin/ruby -e 'p true'

      in use at exit: 37,193,788 bytes in 21,951 blocks
    total heap usage: 61,729 allocs, 39,778 frees, 51,503,615 bytes allocated

     definitely lost: 510,491 bytes in 4,617 blocks
     indirectly lost: 795,436 bytes in 9,411 blocks
       possibly lost: 2,128,254 bytes in 7,100 blocks
     still reachable: 33,759,607 bytes in 823 blocks
          suppressed: 0 bytes in 0 blocks
  Rerun with --leak-check=full to see details of leaked memory

Trying to run the simplest of Ruby commands throws a log 93,000 lines long.

I did try to search online resources to use valgrind with Ruby to no
avail. Apparently everyone is using valgrind with a baseline (if
valgrind shows 500 KiB lost as a start, how much does it change after
my changes?). Sure, we could try to massage a valgrind suppression
file, but is it worth the effort if the Ruby project itself hasn't
even tried to do that?

If we wanted to measure the memory performance of such a command
(which I think would be very nice) a different strategy is needed.

I also didn't see any talloc output.

For now I don't think the series should be blocked by this setback.

Just try to run the command yourself with top. You can see it works.


Felipe Contreras
notmuch mailing list -- notmuch@notmuchmail.org
To unsubscribe send an email to notmuch-le...@notmuchmail.org

Reply via email to