устройства arm6, показывающие намного более высокое использование памяти - PullRequest
1 голос
/ 01 февраля 2012

Я создал приложение в MonoTouch - оно работает как с устройствами arm6, так и с arm7, я старался быть максимально осторожным с использованием моей памяти, а на устройствах arm7 - прекрасно, - запуская его через программу apple tools Я вижу средние «живые байты» в инструменте выделения около 4 МБ.

Однако на устройствах arm6 (iPhone 3G, iPod touch 2nd Gen) - вместо этого он показывает использование памяти около 22 МБ - выдает частые предупреждения о нехватке памяти и, очевидно, в конечном итоге происходит сбой.

Существуют ли какие-либо настройки сборки или какие-либо конкретные вещи, о которых может подумать кто-либо, что может привести к тому, что приложение будет иметь слишком большой объем памяти на устройстве 3G по сравнению с устройствами 3GS (arm7)? Это особенно расстраивает, так как эти устройства в любом случае имеют много памяти.

Спасибо за ваше время,

Ли

1 Ответ

1 голос
/ 01 февраля 2012

Это огромная разница!

My best Предположим, Apple Instruments неверно сообщает используемую память (в любом или обоих случаях) и что, фактически, real память требования обоих гораздо ближе.

В этом случае старые, armv6 устройства имеют меньше оперативной памяти и будут выдавать предупреждения о нехватке памяти перед новыми, armv7 устройствами (с большим объемом оперативной памяти). IOW поведение, которое вы видите , может быть нормальным, т. Е. Вы можете быть на пределе для старых устройств.

Теперь это может быть также ошибка или некоторая другая конфигурация, которая отличается между вашими сборками (например, Отладка по сравнению с Release build). Было бы полезно, если бы вы могли поделиться (или создать тестовый пример) этим с нами (Xamarin), чтобы мы могли попытаться воспроизвести проблему.

ПРИМЕЧАНИЕ :

Полагаю, вы говорите об одном armv6 приложении, используемом на разных устройствах. Но даже если вы использовали разные сборки (одну для arm6 и одну для armv7 или fat ), это повлияет только на генерацию собственного кода. Как таковой он будет влиять на размер двоичного файла, но он не должен оказывать (огромное) влияние на требования приложений к оперативной памяти.

...