I even saw people doing `collect-garbage` three times, just to be safe I
guess. And yet theoretically it's not guaranteed that things will be
claimed back properly.

Honestly, there should be a function that does this `collect-garbage` until
fixpoint or something, so that we don't need to perform this ... uh ....
ritual.

On Fri, Aug 7, 2020 at 9:27 PM George Neuner <gneun...@comcast.net> wrote:

> On Fri, 7 Aug 2020 06:23:52 -0700 (PDT), "'Joel Dueck' via Racket
> Users" <racket-users@googlegroups.com> wrote:
>
> >On Wednesday, August 5, 2020 at 10:44:21 AM UTC-5 Sam Tobin-Hochstadt
> wrote:
> >
> >> Here's a benchmark of your two functions that takes long enough to run
> >> that it avoids some of these issues, and also runs a GC before
> >> benchmarking: https://gist.github.com/7cb4645308d8572e2250833ef7b90b7c
> >>
> >
> >What is the reason for calling `collect-garbage` twice consecutively?
>
> It is an attempt to start with the cleanest heap possible.
>
> Objects that have a "finalizer" get collected over 2 GC cycles - the
> finalizer function gets run during the 1st collection, and then the
> object memory is reclaimed during the next collection.
>
> Running GC twice makes sure any finalized objects have been collected.
>
>
> Also, when GC can run in parallel with the mutator, it is possible to
> miss collecting objects that become garbage *while* GC is running.
> This can't happen in BC Racket, but it might be possible in RacketCS
> because Chez has a different thread model. ???
>
>
> >Also, the docs are unclear on this, but is `(collect-garbage)` equivalent
> >to `(collect-garbage 'major)` ?
>
> The docs clearly state that the default is 'major.
>
>  (collect-garbage [request]) ? void?
>    request : (or/c 'major 'minor 'incremental) = 'major
>
>
> George
>
> --
> You received this message because you are subscribed to the Google Groups
> "Racket Users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to racket-users+unsubscr...@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/racket-users/tp8sifhd4c0cdlvk22qfsmksckv5r0ajpq%404ax.com
> .
>

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/racket-users/CADcuegttXoDSiLX5O5tfWtu69BsiZdXExH8AJj-CfaFPU3gTEA%40mail.gmail.com.

Reply via email to