Zarówno Windows Phone / Xbox, jak i Android nie obsługują generowania śmieci w trybie pokoleniowym. Jest to frustrujące dla wielu programistów. Wydaje się, że jest to uzasadniony powód techniczny, ale nie mogę tego rozgryźć.
Obecne telefony mają więcej pamięci i prawdopodobnie lepsze procesory niż komputery stacjonarne / laptopy z systemem .NET 1.1 z generacyjnym GC w 2001 roku, i nie mogę wymyślić żadnych powodów, dla których procesory ARM byłyby gorsze w generacyjnym GC niż x86. Istnieje również mniejsze zapotrzebowanie na wielozadaniowość na telefonach i konsolach, więc jest stosunkowo więcej wolnego miejsca na stosie.
Co więc daje?
Edycja: Kilka punktów do wyjaśnienia:
- Platformy te używają wyrzucania elementów bezużytecznych wyłącznie do aplikacji, więc moje pytanie nie dotyczy tego, dlaczego GC nie jest obsługiwane; moje pytanie dotyczy tego, dlaczego generowanie śmieci nie jest generowane .
- Powodem, dla którego ludzie są sfrustrowani brakiem pokoleniowej GC, jest to, że GG niegenracyjna jest niezwykle nieefektywna. (Oznacza to, że żywotność baterii nie jest powodem.)
- Wierzę, że istnieje uczciwy techniczny powód braku generacyjnego wsparcia GC. To nie jest pytanie retoryczne.