3 ms·
RC can be deterministic in terms of when a destructor gets called. GC languages usually don't support destructors for that reason.
by vanviegen 5y ago
RC can be deterministic in terms of when a destructor gets called. GC languages usually don't support destructors for that reason.
- pron 5y agoBut RC GC is not deterministic, though. All you know is that it will be called when some reference is cleared. You don't know which and when, and you don't know how much work it will do. With modern tracing GCs, though, there are no more pauses, and mostly a constant and small CPU tax, done in the background. The only significant cost tracing has these days is in memory footprint.
- mwcampbell 5y ago> The only significant cost tracing has these days is in memory footprint. And that's not insignificant. The top-of-the-line Pixel 6 Pro has twice as much RAM as the top-of-the-line iPhone 13 Pro. Maybe the Android camp is just more eager to play the specs game, but I've long speculated that iOS simply needs less RAM because of its refusal to use tracing GC.
- pjmlp 5y agoWindows Phones of the Lumia series had historically less RAM than equally priced Android models and the performance with .NET Native was much better. I used all my models until their hardware died.