4 ms·
“Long GC latency can cause typing delays that are noticeable and lead to a bad typing experience. Pauses over 100-150ms are noticeable by most of us” Pauses ov
by gok 9y ago
“Long GC latency can cause typing delays that are noticeable and lead to a bad typing experience. Pauses over 100-150ms are noticeable by most of us”
Pauses over 16ms are very noticeable on your phone’s 60 Hz display; it will cause dropped frames. So according to the graph, the large majority of pauses will still cause dropped frames.
- simooooo 9y agoYes they say just that in the article "Even if those numbers are a significant quality of life improvement, there’s plenty of work left for us to get to no visible delays due to the garbage collector. We have already a solid pipeline of improvements coming on our next releases."
- jackmott 9y ago1 dropped frame at 60fps is very noticeable? confirm this via experiment?
- corysama 9y agoConfirmed via experience of game and app devs everywhere for decades. It causes a discontinuity. Your eyes and brain have a lot of hardware specifically dedicated to detecting those.
- jackmott 9y agoi am a game dev and think that the impact of a single dropped frame is being overstated. however, a 50 or 100ms gc pause will miss more than 1
- TheCoreh 9y ago1 dropped frame at 90fps for VR is incredibly unpleasant.
- migueldeicaza 9y agoAndroid and iOS both use separate rendering processes/threads for UI and animation to eliminate a range of issues that would otherwise be observable. The code thread might hang, it scheduled rendering and animations will continue. There are scenarios not covered by this hack, but largely these systems are responsible for masking many issues- in this case GC introduced pauses, but can happen in things as common as close()
- webkike 9y agoI would not call this a hack. A lot of systems are structured this way.
- romwell 9y agoIndeed, separating out UI, IO and process threads should be the prevailing design principle.
- yellowapple 9y agoAnd, in fact, is the definition of "view", "model" (kinda), and "controller", respectively.
- gok 9y agoA separate execution environment for animation can help, but usually not for cases where your GC'd code needs to change the rendering in response to user input. A good example which falls down often is scrolling.
- Gibbon1 9y agoYears ago a guy that worked on input devices said if the latency gets over 10ms 12 year old gamers start throwing things. I'm assuming that's because they can tell the button press slipped into the next frame.