В Windows Phone / Xbox и Android отсутствует поддержка сбора мусора поколений. Это расстраивает многих программистов. Кажется, есть законная техническая причина, но я не могу понять это.
Текущие телефоны имеют больше памяти и, вероятно, лучшие процессоры, чем настольные компьютеры / ноутбуки, работающие на .NET 1.1 с поколением GC еще в 2001 году, и я не могу представить себе никаких причин, по которым процессоры ARM будут хуже в поколениях GC, чем x86. Также не требуется многозадачность на телефонах и консолях, поэтому относительно больше свободного места в куче.
Так что же дает?
Изменить: несколько моментов, чтобы уточнить:
- Эти платформы используют сборщик мусора исключительно для приложений, поэтому мой вопрос не в том, почему GC не поддерживается; мой вопрос о том, почему не сборка мусора поколений .
- Причина, по которой люди разочарованы отсутствием GC поколений, заключается в том, что GC без поколений крайне неэффективен. (Это означает, что срок службы батареи не является причиной.)
- Я верю, что есть некая техническая причина отсутствия поддержки GC поколений. Это не риторический вопрос.