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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 09.02.2013, 15:20
expl вне форума Посмотреть профиль Отправить личное сообщение для expl Найти все сообщения от expl
  № 14  
Ответить с цитированием
expl

блогер
Регистрация: Feb 2006
Сообщений: 1,474
Записей в блоге: 3
Цитата:
ну как же? Тут бесконечно будут создаваться переменные итераторы 60 раз в секунду
Вы вызвали двойной фейспалм у меня >_<.
4 байта, на стеке, будет создаваться 60 раз в секунду. Какой ужас!
При чем место на стеке и при взятии значения поля(не переменной), если не ошибаюсь, тоже выделяется.
Завязывайте с придумыванием себе проблем. Об этих 4-х байтах даже GC не знает - они автоматом после отработки функции сносятся.

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

Вот что может создать проблемы, т.к. память выделяется на куче, с последующей сборкой GC и прочими прелестями (но не в вашем случае - 60 раз в секунду выделить память под Point - это фигня на постном масле):
Код AS3:
var point:Point = new Point(x, y);
но не это:
Код AS3:
var point:Point = _anotherPoint;
и не это:
Код AS3:
var n:int = 100;

Цитата:
А что тут отгребать? Просто убираем функцию из вектора
Код AS3:
for each (f in _myFuncVector)
{
    f()
    // а внутри f вызывается removeFunc(...),
    // а внутри removeFunc вызывается _myFuncVector.splice(i, 1);
    // а мы, вообще-то идем по этому _myFuncVector
}
Самое тупое решение - скопировать список перед итерацией и итерировать по копии
Кстати, тут и с добавлением функции внутри функции те же проблемы будут.
Это типичная проблема для всяких самописных Signal-ов и EventDispatcher-ов (в стандартном, вроде, решена)
Если Вы уверены - что внутри слушателя не будете никого подписывать/отписывать - можете забить.


Последний раз редактировалось expl; 09.02.2013 в 15:39.
Создать новую тему   Часовой пояс GMT +4, время: 10:34.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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