Comments 18
Бред. Сигналы гораздо быстрее, чем события. В этом и плюс. События во флэше вообще ужасно медленная штука, но частенько без баблинга очень грустно.
+2
Согласен. По идее сигналы должны быть быстрее, так как нет сравнения строк, но, походу, так как либа не нативная — работает медленнее, чем EventDispatcher, который вшит в плеер. Если результаты тестирования вызывают сомнения — проверь сам.
У GenericEvent есть параметр bubbles, если выставить в true — будет баблинг работать. Но это только для DeluxeSignal.
У GenericEvent есть параметр bubbles, если выставить в true — будет баблинг работать. Но это только для DeluxeSignal.
+2
UFO just landed and posted this here
Плюсы сигналов в том, что не нужно создавать отдельных классов ивентов и прописывать методы clone для них. просто объявляешь:
var signalProcessComplete:Signal = new Signal(int, String, MyType)
и можешь сразу этот сигнал использовать. получается очень компактно, быстро и без «бойлеров» :)
var signalProcessComplete:Signal = new Signal(int, String, MyType)
и можешь сразу этот сигнал использовать. получается очень компактно, быстро и без «бойлеров» :)
0
Для меня звучит не убедительно. С одной стороны, подписка на события — это не такая уж и большая часть кода, чтобы за её счёт уменьшать объём кода. С другой, для приложений выкладываемых в сеть производительность очень важна, т.к. им могут воспользоваться люди со слабыми ПК.
Что хотелось бы увидеть:
1. Если объём кода уменьшается, то насколько? Например, применил сигналы в этом проекте — объём кода уменьшился на 5%.
2. Рассказали бы, какие решения можно перенести с C# в ActionScript. И почему их нельзя или неудобно использовать без сигналов.
Что хотелось бы увидеть:
1. Если объём кода уменьшается, то насколько? Например, применил сигналы в этом проекте — объём кода уменьшился на 5%.
2. Рассказали бы, какие решения можно перенести с C# в ActionScript. И почему их нельзя или неудобно использовать без сигналов.
0
Интересно, что вот тут:
alecmce.com/as3/events-and-signals-performance-tests
приходят к противоположным выводам насчет скорости. Сигналы быстрее
Есть еще одно важное дополнение. Вот тут:
knowledge.robotlegs.org/discussions/questions/351-signals-vs-events-whats-better
в комментариях пишут:
Сигналы диспетчатся в текущем фрейме. Про event нельзя однозначно сказать в каком фрейме вы получите вызов обработчика. Возможно в текущем, возможно в следующем, смотря как решит флешплеер. Где-то мне еще аналогичные сравнения попадались.
Использовал библиотеку сигналов в одном проекте: www.rndgames.com/multiplayer/checkers/
В общем вполне доволен, буду еще использовать :)
alecmce.com/as3/events-and-signals-performance-tests
приходят к противоположным выводам насчет скорости. Сигналы быстрее
Есть еще одно важное дополнение. Вот тут:
knowledge.robotlegs.org/discussions/questions/351-signals-vs-events-whats-better
в комментариях пишут:
Сигналы диспетчатся в текущем фрейме. Про event нельзя однозначно сказать в каком фрейме вы получите вызов обработчика. Возможно в текущем, возможно в следующем, смотря как решит флешплеер. Где-то мне еще аналогичные сравнения попадались.
Использовал библиотеку сигналов в одном проекте: www.rndgames.com/multiplayer/checkers/
В общем вполне доволен, буду еще использовать :)
+3
>Интересно, что вот тут:
>alecmce.com/as3/events-and-signals-performance-tests
>приходят к противоположным выводам насчет скорости. Сигналы быстрее
А какого фига они тестируют без навешенных листенеров? :)
>alecmce.com/as3/events-and-signals-performance-tests
>приходят к противоположным выводам насчет скорости. Сигналы быстрее
А какого фига они тестируют без навешенных листенеров? :)
0
samoiloff.com/tmp/Main.as — вот их класс, добавил только тайминги на тесты, ну никак не получаются сигналы быстрее диспатчера. (Время на 100 000 лупов в миллисекундах).
Main.Main(); event: 250
Main.Main(); signal: 377
Может я что-то делаю не так? Тестировал правда на на win7.
Main.Main(); event: 250
Main.Main(); signal: 377
Может я что-то делаю не так? Тестировал правда на на win7.
0
Откомпилировал этот файл.
вот результаты дебаг-плеера:
[Starting debug session with FDB]
Main.Main(); event: 145
Main.Main(); signal: 148
А вот результаты release-плеера:
event :107
signal 77
(вывел в TextField, т.к. у меня FlashDevelop не отлавливает трейсы релизной версии)
p.s. компьютер: i3, 2gb
прилинкована: as3-signals-v0.7.swc
вот результаты дебаг-плеера:
[Starting debug session with FDB]
Main.Main(); event: 145
Main.Main(); signal: 148
А вот результаты release-плеера:
event :107
signal 77
(вывел в TextField, т.к. у меня FlashDevelop не отлавливает трейсы релизной версии)
p.s. компьютер: i3, 2gb
прилинкована: as3-signals-v0.7.swc
+3
кстати да, релиз не тестил, может проблема в этом, спасибо
-1
Если взять не simpleSignal и simpleEvent, а dataEvent и dataSignal, то на Windows 7, FP 10.1 картина меняется (указано среднее округлённое время в 5 повторах):
Main.Main(); event: 182
Main.Main(); signal: 186
Один раз из пяти повторов было, что сигналы быстрее событий:
Main.Main(); event: 189
Main.Main(); signal: 186
Использовал версию as3-signals-v0.8 и релиз.
Main.Main(); event: 182
Main.Main(); signal: 186
Один раз из пяти повторов было, что сигналы быстрее событий:
Main.Main(); event: 189
Main.Main(); signal: 186
Использовал версию as3-signals-v0.8 и релиз.
0
С помощью сигналов события можно прописывать в интерфейсе как свойства: www.davidarno.org/2010/02/24/actionscript-signals-events-and-interfaces/
С родными флешовыми событиями это весьма проблематично.
С родными флешовыми событиями это весьма проблематично.
0
Sign up to leave a comment.
Снова сигналы