Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 23.11.2009, 03:35
switcher! вне форума Посмотреть профиль Отправить личное сообщение для switcher! Найти все сообщения от switcher!
  № 21  
Ответить с цитированием
switcher!

Регистрация: May 2009
Сообщений: 220
formyka, вы на дату последнего сообщения смотрели?
Уж если вы хотели помочь, то зря удалили комменты Колина Мука в его GarbageCollectionDemo. С ними новичку понятнее.

Старый 23.11.2009, 13:29
formyka вне форума Посмотреть профиль Отправить личное сообщение для formyka Найти все сообщения от formyka
  № 22  
Ответить с цитированием
formyka

Регистрация: Nov 2009
Сообщений: 9
Я для будущих поколений писал! Для тех, кто воспользуется поиском как и я сам... По моему опыту новички-чайники вообще не задумываются об удалении мусора, поэтому могут даже и не понять контекста вопроса (им и так нужно читать книгу, так как в рамках ответов на форуме - сложно понять все нюансы). А те, кто кто знает основы ООП, принципы работы сборщика мусора и что такое счетчик ссылок, я думаю, поймут идею и без коментов. Ну вобщем, если кто-то так ничего и не понял, качаем книжку Мука и читаем!

Colin Moock - Essential ActionScript 3.0 (June 2007)


Последний раз редактировалось formyka; 28.08.2010 в 13:53.
Старый 28.11.2009, 00:06
formyka вне форума Посмотреть профиль Отправить личное сообщение для formyka Найти все сообщения от formyka
  № 23  
Ответить с цитированием
formyka

Регистрация: Nov 2009
Сообщений: 9
Кстати, вот хороший вопрос:

Возмем тот же самый пример из книжки Мука и модифицируем его таким образом:

Код AS3:
package {
  import flash.display.*;
  import flash.text.*;
  import flash.utils.*;
  import flash.events.*;
  import flash.system.*;
  public class GarbageCollectionDemo extends Sprite {
 
    public function GarbageCollectionDemo() {
 
      var s:Sprite = new Sprite();
      s.addEventListener(Event.ENTER_FRAME, enterFrameListener);
 
      var timer:Timer = new Timer(100, 0);
      timer.addEventListener(TimerEvent.TIMER, timerListener);
      timer.start();
      }
 
    private function timerListener (e:TimerEvent):void {
      for (var i = 0; i < 1000; i++) new TextField();
      trace("TIMER: System memory used by this program: " + System.totalMemory);
      }
 
    private function enterFrameListener (e:Event):void {
      trace("SPRITE: System memory used by this program: " + System.totalMemory);
      }
    }
  }
Получаем вот такой результат:

Код:
SPRITE: System memory used by this program: 12341248
SPRITE: System memory used by this program: 12349440
SPRITE: System memory used by this program: 12349440
SPRITE: System memory used by this program: 12349440
TIMER: System memory used by this program: 14172160
SPRITE: System memory used by this program: 14172160
SPRITE: System memory used by this program: 14172160
SPRITE: System memory used by this program: 14172160
TIMER: System memory used by this program: 15986688
SPRITE: System memory used by this program: 15986688
SPRITE: System memory used by this program: 15986688
SPRITE: System memory used by this program: 15986688
SPRITE: System memory used by this program: 15986688
TIMER: System memory used by this program: 14184448
TIMER: System memory used by this program: 15982592
TIMER: System memory used by this program: 17788928
TIMER: System memory used by this program: 19587072
TIMER: System memory used by this program: 13393920
TIMER: System memory used by this program: 15187968
Как видим - спрайт со временем "умирает", а таймер "живет"! Как вы думаете, почему так происходит? Ведь с точки зрения области видимости и специфики работы сборщика мусора, на первый взгляд, оба объекта равноправны.


Последний раз редактировалось formyka; 28.11.2009 в 01:02.
Создать новую тему Ответ Часовой пояс GMT +4, время: 22:28.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 22:28.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.