Какой максимальный объем памяти может использовать Adobe AIR?

Я делал несколько быстрых прототипов для игры, которую собираюсь создать. Одна из основных вещей, которую я хочу сделать, - это создание карты для карты тайлового типа. При создании карты я использую большое количество оперативной памяти. Я строю карту как массив случайных целых чисел для своего теста. Когда я пытаюсь сгенерировать карты крупномасштабной флеш-памяти, у меня возникает ошибка нехватки памяти:

Error: Error #1000: The system is out of memory.

Я уже решил, что вместо этого могу записать в файл, чтобы решить эту проблему. но кто-нибудь знает фактический максимальный размер? Я пробовал искать, но безрезультатно.

Монитор активности сообщает, что ADL использует около 500 МБ «реальной памяти» и около 700 МБ «виртуальной памяти». Свойство System.privateMemory похоже соответствует значению "реальной памяти".

в качестве примечания, которое я разрабатываю в OSX Snow Leopard (64) с оперативной памятью 8 ГБ

РЕДАКТИРОВАТЬ:

Вот пример теста, который я running

var ba:ByteArray = new ByteArray();
for(var i:uint = 0; i<100000000; i++)
{
    ba.writeInt(int(Math.random()*100));
}

trace("end", ba.length, System.totalMemory);

Этот пример работает нормально, после этого свойство общей памяти сообщает об использованной оперативной памяти около 500 МБ. Теперь увеличивая целевое значение до 400000000, я в конечном итоге получаю ошибку «недостаточно памяти».

примечание: Тестирование во Flash CS5.5 с таймаутом, установленным на 120 секунд (тест никогда не достигает этого времени)

EDIT:

Я создал лучший тестовый пример:

var i:uint = 0;
var loopLength:Number = 500000000; // 500,000,000
var ba:ByteArray = new ByteArray();

for(i=0;i<loopLength;i++){
    try{ba.writeInt(1);}
    catch(e:Error){
        MEM_TI.appendText(e.message);
        break;
    }
}    

ba.position = 0;
MEM_TI.appendText("\nTM: "+System.totalMemory+" FM: "+System.freeMemory+" PM: "+System.privateMemory+" BALENGTH: "+ba.bytesAvailable/4);

Когда я запускаю этот скрипт из браузера, автономного отладчика или AIR, я получаю примерно такие же показания использования памяти (которые, как я знаю, в любом случае различаются). Однако неизменной является конечная длина массива байтов:

Браузер (Firefox): TM: 540413952 FM: 19116032 PM: 562573312 BALENGTH: 134217728

Автономный: TM: 540577792 FM: 1810432 PM: 545361920 BALENGTH : 134217728

AIR (2.6): TM: 5410816 FM: 1159168 PM: 551464960 BALENGTH: 134217728

Мои методы тестирования могут быть несовершенными, хотя я не знаю, как сделать более глубокое профилирование.

12
задан bigtallbill 8 July 2011 в 16:49
поделиться