Показать сообщение отдельно
Старый 19.07.2007, 19:54
Ромастый вне форума Посмотреть профиль Отправить личное сообщение для Ромастый Найти все сообщения от Ромастый
  № 1  
Ответить с цитированием
Ромастый
 
Аватар для Ромастый

Регистрация: Jan 2004
Адрес: На чердаке.
Сообщений: 1,112
По умолчанию BitmapData & memory leaks

Случайно натолкнулся на такую вещь.
Код:
import flash.display.BitmapData;
var bm:BitmapData;
function createBitmap() {
	bm = new BitmapData(200, 200, false, 0xFF000000);
}
onEnterFrame = createBitmap;
Тут все ок.

Код:
import flash.display.BitmapData;
function createBitmap() {
	var bm:BitmapData = new BitmapData(1000, 1000, false, 0xFF000000);
}
onEnterFrame = createBitmap;
Во втором варианте наблюдаются некислая утечка памяти, которая периодически очищается коллектором. Фактически мы наблюдаем механизм очистки по меткам, но интересует другой вопрос - кто виноват и что делать, а точнее - если где-то создаются неявные или перекрестные ссылки на созданные экземпляры BitmapData, так что их приходится удалять по меткам, то почему этого не возникает в первом варианте?
__________________
...Тебе страшно? Мне - нет.