Я разрабатываю приложение с Adobe Air 3 для IOS и часто с низкими ошибками памяти.После обновления ios 5 операционная система начала убивать мое приложение после некоторых предупреждений о нехватке памяти.
Но дело в том, что профилировщик говорит, что приложение использует от 4 до 9 мегабайт памяти.Существует много операций копирования растровых изображений, а иногда создаются новые растровые изображения из встроенных растровых изображений.Я высоко оптимизировал все и ищу утечки и т.д.все выглядит отлично, но приложение продолжает получать ошибки памяти и убивает ОС.
Есть ли что-то не так с этим кодом ниже.Поскольку я предполагаю, что этот ClassReference никогда не выходит из памяти, даже профили говорят, что память очищена.Я использовал метод клона, чтобы передать значение вместо передачи по ссылке.поэтому я думаю, что GC может собрать эту локальную переменную.Я пробовал с клоном и без него ничего не изменилось.
Если приведенный ниже код запускается 10-15 раз с ошибками приложения с другим идентификатором плитки, но с одинаковыми идентификаторами, он продолжает работать.
Есть кто-нибудь, кто знакомс такими вещами?
tmp - это bitmapData
if (isMoving)
{
tmp=getProxyImage(x,y); //low resolution tile image
}
else
{
strTmp="main_TILE"+getTileID(x,y);
var ClassReference:Class = getDefinitionByName(strTmp) as Class; //full resolution tile image //something wrong here
tmp=new ClassReference().bitmapData.clone(); //something wrong here
ClassReference=null;
}
return tmp.clone();
Спасибо за чтение.Я надеюсь, что у кого-то есть решение для этого.