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

блогер
Регистрация: Feb 2006
Сообщений: 1,474
Записей в блоге: 3
Цитата:
В таком случае у меня комплилятр ругается на создание модификатора управления доступом внутри функции.
Правильно - внутренних функций в AS3 нет (как и в Java, C#, C, C++, haXe). Вроде из популярных - только Pascal их имеет и при этом они не являются замыканиями.
Создайте обычный метод класса рядом, не надо его внутрь другого метода пихать

Цитата:
Ничего себе, такой большой разброс (800 - 200).
Например из метода вернули функцию, котрая возвращает какое-то число, но в этом методе ещё создавали битма-даты, причём не маленькие - функции они не нужны (или в будущем будут не нужны), но контекст захватился - и эти битмапы должны висеть в памяти. Т.е. тут проблема не в том что анонимная функция много весит (весит она мало), а в том, что она может зацепить что-то очень большое в памяти. И очень тяжело это отследить.
Если эти битмапы были в объекте - к объекту можно достучаться и переназначить их на более актуальные, а к захваченному функцией контенту - не достучишься - пока функция нужна - весь неактуальный мусор будет висеть в памяти.

А если представить что в одних анонимках, захвативших контекст в добавок создаются другие анонимки - уже захватывается и контекст главной анонимки и контекст ранее её захваченный у нормального метода - получается такое дерево из анонимок.
И пока _все_ ссылки на все анонимки этого дерева не похеришь - контексту нормального метода не видать сборщика мусора как своих ушей


Последний раз редактировалось expl; 07.02.2013 в 00:30.