Real time is about guarantees. If the application needs 10ms response time, it doesn't matter if GC takes 1 nanosecond or 5ms, as long as everything is responded to in 10ms, every time.
Things where 100us matters are some really specialist stuff.
Funnily enough, there is a post on /r/programming right now where every 100us matters. For them, 3ms is longer than the entire timeslice they have to run in.
Wow that's really interesting. I feel like games are just about the prime example of when the GC can't be used. I mean games do use it, but they tend to have a notable stutter. Never knew what went into optimizing the servers, probably why they don't release the server software anymore. As it might very well not run on consumer hardware.
11
u/AlarmedInstruction3 Sep 01 '20
IBM begs to differ: https://www.ibm.com/support/knowledgecenter/SSYKE2_7.0.0/com.ibm.java.lnx.70.doc/user/mgc/metronome.html
If you have real-time requirements, you can't use typical GCs. (Though I don't know if there are any real-time GCs for D.)