Показать сообщение отдельно
Старый 25.10.2013, 23:10
expl вне форума Посмотреть профиль Отправить личное сообщение для expl Найти все сообщения от expl
  № 8  
Ответить с цитированием
expl

блогер
Регистрация: Feb 2006
Сообщений: 1,474
Записей в блоге: 3
Цитата:
Эти экземпляры будут индивидуальными, как любой экземпляр, и требовать свою память. Элементарно — Вы может нарисуете в рантайме что-то на "библиотечной" картинке, это же не должно изменить картинку-Класс в библиотеке, только личную картинку экземпляра.
А как же не рассказать про чудо оптимизации флешплеера?
Экземпляр то библиотечного класса создаётся каждый раз и занимает несколько байт, но блок памяти под картинку выделяется только перед попыткой изменить. Уже несколько лет назад адобовцы такую оптимизацию сделали.
Ну а если вы пишите new BitmapData(100, 100) - то тут уж сразу кусок выделяется.

Они пошли дальше: Загружаю картинку, отображаю на экране (не копируя в новую битмапу) - появляется на экране - начинает есть память, сдвигаю за пределы экрана - перестаёт
(Видимо jpeg распаковывают только когда надо, да ещё и убирают когда не используется)
Поначалу даже не понял в чём дело - загрузил разные блоки 2000x2000x24 - считаю - должно получиться +n мегабайт, смотрю в диспетчере задач - флешплеер всего ест в полтора раза меньше чем одни только эти распакованные картинки должны жрать.