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 <[email protected]> wrote: > On Fri, 7 Aug 2020 06:23:52 -0700 (PDT), "'Joel Dueck' via Racket > Users" <[email protected]> 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 [email protected]. > 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 [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/racket-users/CADcuegttXoDSiLX5O5tfWtu69BsiZdXExH8AJj-CfaFPU3gTEA%40mail.gmail.com.

