O Windows Phone / Xbox e o Android não têm suporte para coleta de lixo de gerações. Isso é frustrante para muitos programadores. Parece haver uma razão legítima de engenharia, mas não consigo descobrir.
Os telefones atuais têm mais memória e provavelmente melhores CPUs do que os desktops / laptops executando o .NET 1.1 com GC geracional em 2001, e não consigo pensar em nenhum motivo pelo qual os processadores ARM seriam piores no GC geracional do que o x86. Também há menos necessidade de multitarefa em telefones e consoles; portanto, há relativamente mais espaço livre na pilha.
Então, o que dá?
Editar: Alguns pontos para esclarecer:
- Essas plataformas usam a coleta de lixo exclusivamente para aplicativos, então minha pergunta não é sobre por que o GC não é suportado; minha pergunta é sobre por que a coleta de lixo geracional não é.
- A razão pela qual as pessoas estão frustradas com a falta de GC geracional é que o GC não-genracional é extremamente ineficiente. (Isso significa que a duração da bateria não é a razão.)
- Eu acredito que há uma razão técnica honesta para a falta de suporte geracional do GC. Esta não é uma pergunta retórica.