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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 14.05.2010, 16:23
orcpochta вне форума Посмотреть профиль Отправить личное сообщение для orcpochta Найти все сообщения от orcpochta
  № 11  
Ответить с цитированием
orcpochta

Регистрация: Feb 2008
Сообщений: 890
Ну, возможно, я не правильно понял и интерпретировал слова Nox-а.

Добавлено через 4 минуты
Кстати, переменные оперативно удаляются в соответствии с видимостью благодаря тому, что лежат в области памяти, называемой "стек", а вот объекты лежат в другой области памяти - "куче". Эти области памяти организованы различными образами и чистятся тоже разными способами.

Я это вычитал в книге "Философия Java"...))))))))
__________________
скриптограф

Старый 14.05.2010, 16:31
BlooDHounD вне форума Посмотреть профиль Отправить личное сообщение для BlooDHounD Посетить домашнюю страницу BlooDHounD Найти все сообщения от BlooDHounD
  № 12  
Ответить с цитированием
BlooDHounD
стервочка (я мужик)
 
Аватар для BlooDHounD

блогер
Регистрация: Mar 2004
Адрес: Борисов
Сообщений: 3,161
Записей в блоге: 22
orcpochta, ну это нормально. так вот если Event не выходит из стэка, то он удаляется сразу.

Старый 14.05.2010, 16:38
orcpochta вне форума Посмотреть профиль Отправить личное сообщение для orcpochta Найти все сообщения от orcpochta
  № 13  
Ответить с цитированием
orcpochta

Регистрация: Feb 2008
Сообщений: 890
Цитата:
Сообщение от BlooDHounD Посмотреть сообщение
orcpochta, а что с ними происходит?
с кем? с объектами?

они лежат себе в куче и лежат до того момента, пока GC (собственно он только в куче и работает) не решит, что объем памяти, занимаемой объектами в куче, не начинает приближаться к общему выделенному системой для этого приложения объему памяти кучи - и вот тут-то он начинает все чистить, что не в прямой области видимости

на самом деле это утрированно, т.к. GC чистит порционально, а не все сразу, но общий смысл понятен

еще GC может вызываться в каких-то других случаях, но это частности

Добавлено через 2 минуты
Цитата:
Сообщение от BlooDHounD Посмотреть сообщение
orcpochta, ну это нормально. так вот если Event не выходит из стэка, то он удаляется сразу.
Event лежит в куче (как и любой объект-непримитив), а ссылка на него лежит в стеке
__________________
скриптограф


Последний раз редактировалось orcpochta; 14.05.2010 в 16:53.
Старый 14.05.2010, 17:57
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 14  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
http://bugs.adobe.com/jira/browse/SDK-24249
это читать по поводу событий и производительности.
Что касается сборщика мусора, то есть два разных явления, дефрагментация памяти и объем реально используемой памяти. Т.е. не зависимо от того когда удаляется созданый объект память будет дефрагментироваться тем самым увеличивая общий объем. Дворник включается исходя из соотношения занятой памяти к доступной, так что даже если вы будете создавать и сразу удалять объекты в большом количестве то рано или поздно дворник включится.
__________________
Hell is the possibility of sanity

Старый 14.05.2010, 22:09
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 15  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Господи пожалуйста не Новосибирск
Сообщений: 6,598
Записей в блоге: 17
Кстати, по теме GC. Интересность нашел:
Код AS3:
spr = new Sprite();
spr.graphics.beginFill(0);
spr.graphics.drawCircle(0, 0, 300);
spr.graphics.endFill();
super.addChild(spr);
super.addEventListener(MouseEvent.CLICK, onClick);
Код AS3:
private function onClick(e:MouseEvent):void 
		{
			var i:int = 10000;
			while (i--) new Sprite();
		}
Смотрим профайлером: по клику скачок памяти, через секунду обратно на стартовое значение, всё хорошо. Но если в течении этой секунды нажать второй раз - наблюдается второй скачок, т.е. памяти используется больше. Назревает логичный вопрос: новый спрайт мы нигде не используем, переменные локальные и ссылок нигде не оставляем. Значит, при повтором клике эти новые спрайты должны лепиться друг поверх друга и память должна стоять на месте.
Но если эти спрайты сразу же добавить на сцену - памяти используется раз в 50 больше, что толкает на мысль - что эти скачки памяти лишь несовершенность профайлера. С другой стороны, может быть память неуспевает быть дефрагментированной и новые объекты лепятся за старыми. Где правда?

Старый 15.05.2010, 02:16
expl вне форума Посмотреть профиль Отправить личное сообщение для expl Найти все сообщения от expl
  № 16  
Ответить с цитированием
expl

блогер
Регистрация: Feb 2006
Сообщений: 1,474
Записей в блоге: 3
Ну нажали второй раз - а GC еще не успел предыдущие спрайты убрать - логично
добавили на сцену - объекты попали в список отображения и обросли допольнительными обязанностями - потребление памяти возросло - тоже все логично

Старый 15.05.2010, 02:37
Bgg вне форума Посмотреть профиль Отправить личное сообщение для Bgg Найти все сообщения от Bgg
  № 17  
Ответить с цитированием
Bgg
 
Аватар для Bgg

Регистрация: Jan 2009
Адрес: Петерсбург
Сообщений: 1,882
Цитата:
Сообщение от orcpochta Посмотреть сообщение
Я это вычитал в книге "Философия Java"...))))))))
Не по теме. Тоже сейчас читаю, слово "куча" возмутило. Может быть перевод кривой?

А по теме, у меня лично никогда не стояло выбора между использованием callback'а или событий, всегда что то одно удобнее другого.

Старый 15.05.2010, 09:24
Котяра вне форума Посмотреть профиль Отправить личное сообщение для Котяра Посетить домашнюю страницу Котяра Найти все сообщения от Котяра
  № 18  
Ответить с цитированием
Котяра
буду краток
 
Аватар для Котяра

модератор форума
Регистрация: Sep 2003
Адрес: Ближайшее Замкадье
Сообщений: 3,110
Записей в блоге: 28
Отправить сообщение для Котяра с помощью ICQ Отправить сообщение для Котяра с помощью Skype™
Цитата:
Сообщение от Bgg Посмотреть сообщение
Не по теме. Тоже сейчас читаю, слово "куча" возмутило. Может быть перевод кривой?
Стек и куча - устоявшиеся понятия.
__________________
Отряд Котовскага

Старый 15.05.2010, 14:10
Zebestov вне форума Посмотреть профиль Отправить личное сообщение для Zebestov Посетить домашнюю страницу Zebestov Найти все сообщения от Zebestov
  № 19  
Ответить с цитированием
Zebestov
Lorem ipsum
 
Аватар для Zebestov

модератор форума
Регистрация: May 2001
Адрес: Одесса
Сообщений: 4,869
Записей в блоге: 4
всегда использую события, не прыгаю с одного на другое. может для того чтобы всегда и везде точно знать, как я там организовал реакцию на те или иные события.
__________________
Поймай яблоко 2!

Старый 15.05.2010, 21:04
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 20  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Господи пожалуйста не Новосибирск
Сообщений: 6,598
Записей в блоге: 17
Цитата:
Ну нажали второй раз - а GC еще не успел предыдущие спрайты убрать - логично
GC нету для локальных переменных.

Создать новую тему Ответ Часовой пояс GMT +4, время: 00:12.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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