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

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

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

Регистрация: Jun 2009
Сообщений: 42
По умолчанию Статья: "ActionScript 3. Работа с памятью"

http://www.dtf.ru/articles/read.php?id=51967

доброго времени суток
поясните работу Memory Controller


Последний раз редактировалось bugizavr; 16.06.2009 в 22:51.
Старый 16.06.2009, 22:13
willis83 вне форума Посмотреть профиль Отправить личное сообщение для willis83 Найти все сообщения от willis83
  № 2  
Ответить с цитированием
willis83
 
Аватар для willis83

Регистрация: Jan 2008
Адрес: Украина, Славутич
Сообщений: 646
Отправить сообщение для willis83 с помощью ICQ
поянить работу с пояснениями?....её автор на вас бы обиделся, вы его только что опустили как автора. Задавайте более конкретные вопросы.

Добавлено через 12 минут
В AS3 нет прямых методов удаление объектов из памяти. Для этого флэш плеер периодически вызывает GC, по русски - сборщик мусора и этот сборщик удаляет из памяти экземпляры классов на которые вы удалили все ссылки, листенеры и который не находится в контейнере видимых объектов, т.е. висит в памяти как сопля на стене и вы уже его никак не сможете использовать. Удаляются только ты объекты которые вы сам отрезали он мира и которые в данный момент не выполняют какой-то код, например как листенер ENTERFRAME.

Добавлено через 16 минут
Я например пишу в классах которые буду удалять функцию prepareForDie в которой удаляю все листенеры, чищу переменные, короче готовлю объект к переходу в мир иной. И для удаления сперва запускаю её, а потом стираю ссылку на экземпляр в его родителе.

Старый 16.06.2009, 22:51
bugizavr вне форума Посмотреть профиль Отправить личное сообщение для bugizavr Найти все сообщения от bugizavr
  № 3  
Ответить с цитированием
bugizavr

Регистрация: Jun 2009
Сообщений: 42
прошу прощения

хотел написать: "поясните работу Memory Controller"

смотрел код

создание огромного числа объектов, потом их удаление....
как танцы с бубном выглядит для меня


Последний раз редактировалось bugizavr; 16.06.2009 в 22:56.
Старый 16.06.2009, 23:10
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 4  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,784
Так они и есть танцы с бубном
Псевдонаучный код, на самом деле просто нужно перелопатить довольно большое количество бесполезных разношерстных данных, чтобы форсировать GC. А в целом подобные «менеджеры», на мой взгляд, бессмысленны. Код просто должен не только гадить, но и подчищать за собой. А принудительные вызовы GC только лишь снизят производительность.

Старый 16.06.2009, 23:10
willis83 вне форума Посмотреть профиль Отправить личное сообщение для willis83 Найти все сообщения от willis83
  № 5  
Ответить с цитированием
willis83
 
Аватар для willis83

Регистрация: Jan 2008
Адрес: Украина, Славутич
Сообщений: 646
Отправить сообщение для willis83 с помощью ICQ
Если вы про описание класса, то советую вам начать изучение as3 с азов, а не разбора классов utils.
Код AS3:
package utils
{
	import flash.system.System;
	import flash.utils.ByteArray;
	import flash.geom.Point;
	import flash.utils.setInterval;
	import flash.net.LocalConnection;
	import flash.utils.setTimeout;
 
	public class MemoryController
	{
		private var mInterval:int; //Интервал обновления, в милисекундах
		private var mWarningMemoryLimit:int; // Размер порога памяти, при котором начинается форсированное очищение
		private var mCriticalMemoryLimit:int; // Размер порога памяти, который является критическим
		private var mAbortFunction:Function; // Функция, вызываемая при достижени критического порога
		private var mWarningFunction:Function; // Функция, вызываемая при достежении опасного порога
		private var mForcedIterationsNum:int;  // Количество принудительных итераций GC, при достижении порога
		private var mForcedCleanInterval:int;  // мин. интервал в милисекундах между принудительными очистками
		private var mIsAbleToForce:Boolean;
Это собственно определение класса и его внутренних переменных. Далее
Код AS3:
public function MemoryController(refreshInterval:int = 1000, warningMemoryLimit:int = 1024*1024*60, 
										criticalMemoryLimit:int = 1024*1024*100, forcedCleanInterval:int = 60000, 
										forcedIterationsNum:int = 1,
										abortFunction:Function = null, warningFunction:Function = null):void
		{
			mInterval = refreshInterval;
			mWarningMemoryLimit = warningMemoryLimit;
			mCriticalMemoryLimit = criticalMemoryLimit;
			mAbortFunction = abortFunction;
			mWarningFunction = warningFunction;
			mForcedIterationsNum = forcedIterationsNum;
			mForcedCleanInterval = forcedCleanInterval;
			mIsAbleToForce = true;
			setInterval(checkMemoryUsage, mInterval);
		}
Определение конструктора и передача значений из конструктора в переменные класса, ну а дальше вызывается функция setInterval и там понеслась, анализируйте код.... ну вообще не понятно зачем вам это надо. Тем более автор статьи написал как она работает, чтобы использовать класс, вам не обязательно построчно его разбирать. И вообще в начале освоения as3 можно работать и без таких классов

Старый 16.06.2009, 23:18
bugizavr вне форума Посмотреть профиль Отправить личное сообщение для bugizavr Найти все сообщения от bugizavr
  № 6  
Ответить с цитированием
bugizavr

Регистрация: Jun 2009
Сообщений: 42
willis83 спасиб за совет)
Цитата:
Сообщение от willis83 Посмотреть сообщение
ну вообще не понятно зачем вам это надо
исходников уже за 150 kb
всерьёз беспокоюсь за производительность флешки
вот создал тему, вдруг кто-нибудь что-то умное скажет

Старый 16.06.2009, 23:23
willis83 вне форума Посмотреть профиль Отправить личное сообщение для willis83 Найти все сообщения от willis83
  № 7  
Ответить с цитированием
willis83
 
Аватар для willis83

Регистрация: Jan 2008
Адрес: Украина, Славутич
Сообщений: 646
Отправить сообщение для willis83 с помощью ICQ
думаю лучше разбирайтесь с исходниками, проследите что вы всё удаляете, что нет ничего лишнего... если код "грязный", то это класс вам не поможет точно.

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

Регистрация: Jun 2009
Сообщений: 42
willis83 - это понятно))
код рефакторю постоянно, почти везде вик референс использую
слежу за ссылками

ну да ладно...

Старый 07.12.2010, 17:12
kemsky вне форума Посмотреть профиль Отправить личное сообщение для kemsky Найти все сообщения от kemsky
  № 9  
Ответить с цитированием
kemsky

Регистрация: Dec 2010
Сообщений: 10
Записей в блоге: 1
http://compile4fun.wordpress.com/
можно тоже почитать

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

Регистрация: Oct 2006
Адрес: Novosibirsk-Kaliningrad
Сообщений: 1,278
Отправить сообщение для terbooter с помощью ICQ Отправить сообщение для terbooter с помощью Skype™
Почитал вспомнил про эти статьи, вот народ развлекается! =)

Следуйте рекомендациям адобе.
Используйте профайлер для контроля и поиска утечек.

И вам не понадобятся всякие подпольные рогатки

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

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

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


 


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


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