]> source.dussan.org Git - vaadin-framework.git/commit
Optimize getAllChildrenIterable() performance. (#13803)
authorFabian Lange <lange.fabian@gmail.com>
Wed, 21 May 2014 12:52:52 +0000 (14:52 +0200)
committerVaadin Code Review <review@vaadin.com>
Thu, 22 May 2014 12:11:43 +0000 (12:11 +0000)
commitbb650cf78ecbe9d3eeb9cd57a87b042e76bff792
treed981fe5d136d8d0c8a8c9386c9eb0a79a62cf7e9
parentbd311030b63d83bc1bab72bcba9fd909652bde19
Optimize getAllChildrenIterable() performance. (#13803)

getAllChildrenIterable() is invoked frequently, its used by
attach/detach and markAsDirty.
Because of the implementation detail in CombinedIterator, on every call
all iterators are checked. This means that on every component which has
multiple childs, each next() call will first check the extension
iterator, before advancing in the child iterator.
By having the childs first, this overhead is reduced. If no extensions
are existing (which is quite common) the iterator is not added at all.
(creating an iterator on an empty UnmodifiableCollection is waste of
time and memory)

Change-Id: I23bb91464052ad4282963ec4b5be8a52c6847d4f
server/src/com/vaadin/server/AbstractClientConnector.java