When video game people say that they usually mean "tracing gc" instead of "gc" and it's about the latency, not the throughput, which Yichao explained. A game has a soft deadline every few tens of milliseconds to render to the screen and gc pauses can make the experience miserable. Interestingly a lot of games actually have a tracing gc that handles some objects, either because they embed a managed scripting language for gameplay or even because they have a C++ gc (I'm looking at you Unreal Engine). The key is to keep the number of managed object small-ish and collect them incrementally every frame. The general saying "gc is a no go for real-time games" usually comes with a strawman where every single 3 component vector is heap allocated.
On Thursday, May 26, 2016 at 2:13:15 PM UTC-4, Ford Ox wrote: > > This is the wrong question to ask >> > > I wanted to write 'good enough' but then I discarded it since its too > broad term. It was a mistake. > > I was wondering, whether there will ever be so well rounded GC, that ... > "reference counting, manual allocation / freeing and all that c++ stuff > will be obsolete." > > Reacting to Jeff post > > I always hear from people working in game industry (graphics) that GC > languages can't be used, since it always causes some minor lags. Is that > another misinformation? >
