![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Здравствуйте. Понятно, что второй метод еще и добавляет обьект в дисплей лист, а первый лишь изменяет глубину. Но, если обьект уже добавлен, и мне нужно 30 раз/сек изменять его глубину, какой из двух вариантов лучше использовать? Что лучше в плане производительности? В справке по этому вопросу ничего не сказано.
__________________
Я мало чего умею, но зато хорошо умею учиться... |
|
|||||
|
Регистрация: Aug 2008
Адрес: Рязань
Сообщений: 723
|
я думал, что человек, рассказывающий в блоге о создании изометрического мира умеет делать тесты на производительность
PS. setChildIndex побыстрее
__________________
low + Последний раз редактировалось Jewelz; 04.02.2012 в 15:25. |
|
|||||
|
Цитата:
to HardCoder Вот как раз и стоит научиться замерять производительность.
__________________
http://www.chessmax.ru |
|
|||||
|
Спасибо, за ответы. Да, я задал вопрос, потому что не умею замерять производительность как следует. Да и "производительность" - понятие растяжимое. По логике, нужно использовать setChildIndex(), так как он для этого и предназначен, addChildAt() предназначен для другого - для добавления обьектов. Но проведя небольшой тест в дебаг плеере, картина получилась следующая:
Цитата:
private function init(e:Event = null):void { this.removeEventListener(Event.ADDED_TO_STAGE, init); mcs = new Array(); var mc:MC; for (var i:uint = 0; i < 2000; i++){ mc = new MC(); mcs.push(mc); this.addChild(mc); } this.stage.addEventListener(MouseEvent.CLICK, onClick); } private function onClick(e:MouseEvent):void { var time1:Number = getTimer(); for (var i:uint = 0; i < mcs.length; i++){ addChildAt(mcs[i], 0); } time1 = getTimer() - time1; var time2:Number = getTimer(); for (var j:uint = 0; j < mcs.length; j++){ setChildIndex(mcs[j], 0); } time2 = getTimer() - time2; trace(time1, time2); }
__________________
Я мало чего умею, но зато хорошо умею учиться... |
|
|||||
|
setChildIndex еще пчку проверок валидности такого действия проводит. Как минимум есть ли такой объект в данном паренте. А addChildAt втупую добавляет объект и всё.
Сортировка аддчилдами самая быстрая, да ты собственно и сам на своем тесте увидал уже. Правда я не уверен что индекс 0 для теста самый удачный, рандомных бы каких-то напихал. А то думаю [ноль] и [numChildren - 1] как-то иначе обрабатываются по ускоренной схеме. Добавлено через 1 минуту Ну и тайм 30 милисекунд не совсем ок. Добавь туда еще один нолик хотя бы в кол-во объектов, а то таймер может врать на маленьких цифрах.
__________________
Кто к нам с чем для чего - тот у нас того от того. |
|
|||||
|
Регистрация: Aug 2008
Адрес: Рязань
Сообщений: 723
|
при [numChildren - 1] быстрее setChildIndex, но не на много
а вообще получается, что зависимость от кол-ва детей и индекса куда хотим запихнуть
__________________
low + Последний раз редактировалось Jewelz; 04.02.2012 в 19:00. |
|
|||||
|
Цитата:
. Мой "Катерпиллер" идет на взлет. Установил количество обьектов 4000. Вот результаты, которые у меня получились:Когда все обьекты помещаем на 0-вой индекс: Цитата:
Цитата:
Цитата:
Действительно, при [numChildren - 1] результаты почти одинаковые. Добавлено через 5 минут Вот и опять вопрос по главной теме. Если setChildIndex хорош лишь при индексе [numChildren - 1], то в чем его полезность?
__________________
Я мало чего умею, но зато хорошо умею учиться... |
|
|||||
|
Регистрация: Aug 2008
Адрес: Рязань
Сообщений: 723
|
вот тут батьки начали этот разговор, но ушли немного далековато от темы (за что их бы неплохо поругать)
хотя там обсуждается как раз добавление в конец списка отображения тут думаю нет смысла искать "отличия", все-таки метод addChildAt можно использовать для разных контейнеров, а setChildIndex только в текущем
__________________
low + Последний раз редактировалось Jewelz; 04.02.2012 в 19:36. |
|
|||||
|
Мне вот интересна такая разница при первом клике.
Дальше цифры уже меньше отличаются. Цитата:
__________________
Кто к нам с чем для чего - тот у нас того от того. |
|
|||||
|
Вообще странно, что setChildIndex проигрывает. Может имеет смысл проверить не дебаг версию?
__________________
http://www.chessmax.ru |
![]() |
![]() |
Часовой пояс GMT +4, время: 16:19. |
|
|
« Предыдущая тема | Следующая тема » |
|
|