Цитата:
Сообщение от Волгоградец
(Сообщение 774202)
Господа, можете объяснить, почему вы считали код wvxvw более медленным нежели код __etc? Что-то я особой разницы не вижу...
|
Разница в том, что код wvxvw в цикле запрашивает геттер numChildren и удаляет ребенка с нулевого индекса.
Постоянный запрос геттера, как вызов функции, по определению должен быть медленнее обращения к локальной переменной. При работе с массивами удаление первого элемента занимает больше времени, чем последнего, из-за происходящего смещения индексов элементов.
Как выяснилось, в модели DisplayObjectContainer элемент на нулевом индексе оказывается последним в массиве элементов, а не наоборот. Именно поэтому удаление последнего элемента в display list медленнее, чем первого. Ну а геттер numChildren оказался таким же быстрым, как и декремент локальной переменной, вероятно в силу того, что декремент выполяется в несколько действий, с конвертацией и прочим.
|