The development version of Racket now supports an incremental garbage-collection mode that can eliminate long pauses in a program. For example, incremental mode is useful for avoiding pauses in games and animations.
For more information, see http://goo.gl/rYjTIi You can try out incremental mode in a snapshot build: http://pre.racket-lang.org/ The `2htdp/universe` library has been updated to request incremental mode, so a `big-bang` program will automatically use it. The programs that I've tried experience GC pauses that are bounded by 10ms or so (when run outside of DrRacket). In v6.3, the same programs see a pair of 130ms pauses every 2-3 minutes. As another example, my son Oliver has a Pict3D-based game that now runs without big pauses: https://spaceorbs.weebly.com/ https://www.youtube.com/watch?v=mP8ud9Yztz8 The game uses a fork of Pict3D (github.com/mflatt/pict3d) where I've added a `(collect-garbage 'incremental)` call. That changes also makes animations in my Pict3D-based talk run without big pauses. For Oliver's game, each GC pause is usually below 16ms on his machine, but sometimes between 16ms and 32ms. As a result, the game is still dropping frames, so it's not yet as good as we want --- but that's much better than before, and the game is comfortably playable. Further improvement might be just a matter of tuning the implementation of incremental mode. There's still room for improvement overall, and your mileage may vary. If you have an application that needs shorter GC pauses and the current implementation of incremental mode doesn't work well enough, I'm interested to hear about it. -- 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. For more options, visit https://groups.google.com/d/optout.