![]() |
|
||||||||||
|
|||||
|
Регистрация: Feb 2010
Сообщений: 7
|
Я раньше писал на С++ и привык что память нужно удалять самому. Теперь пишу на АС и не уверен в правильности работаты с памятью. Концепция Garbage Collector, хорошая, но детали ей работы не понятны. Например такой код.
Куда девался первый спрайт, GC удалит его из памяти или будет memory leak. |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Удалит.
з. Ы. У спрайта нет аргументов в конструкторе. |
|
|||||
|
стервочка (я мужик)
|
если остались ссылки, то будет утечка.
в коде выше утечка. ссылка на первый спрайт осталась в s2. ну это есть грубо и на пальцах. на самом деле может и не будет утечки, зависит от контекста написания данного кода.
|
|
|||||
|
[+1 19.06.10]
[+1 27.07.10] Регистрация: Aug 2009
Адрес: UTC+2
Сообщений: 353
|
АС3 в этом плане оч интересен. тут надо не меньше чем в сях следить за памятью.
Если не юзаете больше объект, удалите сначала все, что на него навесили, а потом сделайте объект = NULL; Причем, перед тем, как кончать навеску, проверьте if (объект !== NULL) { мочить все! } а вот вам еще пример "утечки": этот код съест памяти втрое больше, чем этот |
|
|||||
|
Регистрация: Feb 2010
Сообщений: 7
|
А если так
Куда уйдет Sprite ? Это ошибка ? |
|
|||||
|
Регистрация: Jun 2009
Адрес: Москва
Сообщений: 170
|
если в some code ничего существенного не будет - всё нормально, ссылки не станет, объект удалится(может быть, когда-нибудь, когда GC сочтёт что так надо).
|
|
|||||
|
Регистрация: Feb 2010
Сообщений: 7
|
Ну а если так
Надеюсь, тоже ничего плохого не будет и память удалится. |
|
|||||
|
стервочка (я мужик)
|
Anton Bel, откуда Вы берёте 100,100 в параметрах?
|
|
|||||
|
[+1 19.06.10]
[+1 27.07.10] Регистрация: Aug 2009
Адрес: UTC+2
Сообщений: 353
|
а к чему такие махинация с объявлениями экземпляров ?
можно подробнее ? |
|
|||||
|
Регистрация: Feb 2010
Сообщений: 7
|
Это код для примера. Придумываю на ходу. Sprite тоже класс для примера, можно использовать Sprite2, если хотите.
Вопрос только об управлении памятью. |
![]() |
![]() |
Часовой пояс GMT +4, время: 16:27. |
|
|
« Предыдущая тема | Следующая тема » |
|
|