Я написал несколько простых алгоритмов дерева/графа, но быстро столкнулся с множеством исключений StackOverflowError
с некоторыми довольно маленькими данными. Оказывается, стек по умолчанию составляет 8 Кбайт на моем Samsung Galaxy S3, который имеет 2 ГБ оперативной памяти. Мой компьютер 10 лет назад имел 1 МБ стек. Аппарат Linux, который я использую сейчас, имеет 4 ГБ оперативной памяти. ОЗУ моего телефона составляет лишь половину от объема оперативной памяти моего компьютера, но стек телефона в 1000 раз меньше. Зачем?Почему стек вызовов в Android 8KB?
Какова фактическая техническая причина, по которой разработчикам Android пришлось ограничивать стек гораздо больше, чем другие операционные системы? Например, это связано с тем, что некоторые устройства Android имеют небольшой объем оперативной памяти, например, 1 МБ или 10 МБ? Я не рассматривал диапазон устройств, но мне трудно поверить, что любое устройство будет настолько маленьким.
Решение архитектурного дизайна от Samsung/Google? – Renan
Опубликовать весь logcat. –
Потому что это размер стека по умолчанию (и IIRC - это версия и/или устройство). –