Sia Windows Phone / Xbox che Android non supportano la raccolta dei rifiuti generazionale. Questo è frustrante per molti programmatori. Sembra esserci una ragione ingegneristica legittima, ma non riesco a capirlo.
I telefoni attuali hanno più memoria e probabilmente CPU migliori rispetto ai desktop / laptop che eseguono .NET 1.1 con GC generazionale nel 2001, e non riesco a pensare a nessuna ragione per cui i processori ARM sarebbero peggiori in GC generazionale rispetto a x86. C'è anche meno bisogno di multitasking su telefoni e console, quindi c'è spazio heap relativamente più libero.
Quindi cosa dà?
Modifica: alcuni punti per chiarire:
- Queste piattaforme usano esclusivamente la garbage collection per le app, quindi la mia domanda non è perché GC non sia supportato; la mia domanda è sul perché la raccolta dei rifiuti generazionale non lo è.
- La ragione per cui le persone sono frustrate dalla mancanza di GC generazionale è che il GC non genrazionale è estremamente inefficiente. (Ciò significa che la durata della batteria non è la ragione.)
- Credo che ci sia un motivo tecnico onesto per la mancanza di supporto generazionale GC. Questa non è una domanda retorica.