Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   влияет ли количество слушателей на производительность (http://www.flasher.ru/forum/showthread.php?t=139283)

Crenth 27.04.2010 15:20

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

но выяснить ресурсоемкость первого и второго подходов можно только экспериментальным путем...

P.S. думаю, что "слушатель" представляет собой несколько байт и ни грамма исполняемого кода.

mickfallout 27.04.2010 15:20

orcpochta, об этом BlooDHounD и говорит "вы скорее потратите больше ресурсов на постоянные подписки и отписки"

orcpochta 27.04.2010 15:25

Цитата:

Сообщение от mickfallout (Сообщение 904068)
orcpochta, об этом BlooDHounD и говорит "вы скорее потратите больше ресурсов на постоянные подписки и отписки"

зачем подписки и отписки? предположим, мне надо, чтобы каждый объект что-то делал по событию ENTER_FRAME, все объекты у меня лежат в массиве (можно в векторе), слушатель повешен на родителя (или вообще на кого угодно - я создаю объект класса Shape, который обзываю pulsar - он у меня что-то типа тактового генератора в процессоре и он заставляет всех плясать), по событию родитель пробегается по массиву и у каждого члена вызывает, например, публичный метод onTact(), а какая ф-ия подставляется в этот метод в самом объекте - зависит уже от внутреннего состояния объекта.

random13 27.04.2010 15:28

просто при этом тоже получается что наш объект не что то самостоятельное а очень сильно завязанное на внешнем поведение, или это есть хорошо?

orcpochta 27.04.2010 15:35

Цитата:

Сообщение от random13 (Сообщение 904070)
просто при этом тоже получается что наш объект не что то самостоятельное а очень сильно завязанное на внешнем поведение, или это есть хорошо?

ровно на столько, на сколько завязан объект, слушающий событие, например, таймера или обновления экрана

я как-то испытывал эту схему еще в 8 флеше и у меня бодро бегало 50 на 50 танков (в смысле по 50 в двух командах) по клеткам не наезжая друг на друга и радостно друг-друга убивая с эффектом разлетающихся осколков

BlooDHounD 27.04.2010 16:19

так ... из происходящего могу понять, что читать умеет только mickfallout.

1. баблинг происходит не зависимо от того, есть слушатели или нет.
2. когда генерируется событие ему всё равно придётся на каждом этапе всплытия проверить "а есть ли тут слушатель".
3. если у нас будет 500 вложенностей, то произойдёт 500 проверок для события. независимо от того на каком уровне вложенности Вы подпишитесь, все 500 проверок произойдут любом случаи.

исходя из этого на скорость обработки это никак не повлияет.

подписываясь у родителя, Вы делаете это один раз. создавая всего одного слушателя. подписываясь у каждого из детей, Вы создаёте N слушателей.соответственно вы тратите в N раз больше памяти и в N раз у вас будет медленнее инициализация прослушки.

orcpochta 27.04.2010 16:22

имелось в виду 50-500 одноуровневых детей ессно)))

BlooDHounD 27.04.2010 16:25

orcpochta, да это совершенно не важно, и к теме не относится.

orcpochta 27.04.2010 16:31

как же не относится? дети есть, слушатели есть

BlooDHounD 27.04.2010 16:49

повторюсь:
Цитата:

Сообщение от BlooDHounD (Сообщение 904088)
так ... из происходящего могу понять, что читать умеет только mickfallout.



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

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