Hi,
in current codebase, myfaces use mostly enhanced loop for iterating over
chidren:
for (UIComponent child: getChildren())
that creates new instance of iterator.
After change to plain old indices:
for (i = 0; i childCount; i++)
child = getChildren().get(i);
I achieved following results
If getChildren() is always of type List, then it really doesn't matter
if it's ArrayList or ChildArrayList or some other kind of list. You
can use indexes for any type of List.
On Tue, May 10, 2011 at 4:11 PM, Martin Koci
martin.kocicak.k...@gmail.com wrote:
Hi,
in current codebase, myfaces
Mike,
What Martin is talking about is that if the List doesn't implement the
Marker interface RandomAccess then the List may implement indexed-based
access through iteration, in which case iterating the list is n^2/2
-- Blake Sullivan
On 5/10/11 1:17 PM, Mike Kienenberger wrote:
If
Hi
+1 to change to plain old indices. One curious thing to note is Trinidad
variant uses plain old indices to do its own stuff. See:
http://svn.apache.org/repos/asf/myfaces/trinidad/trunk/trinidad-api/src/main/java/org/apache/myfaces/trinidad/component/ChildArrayList.java
Trinidad stuff is rock
Hi,
yes, every List support indexes, but it dependes on implementation if
that index-based access is fast or not. For example, ArrayList is fast,
because it uses array internally; and also flags that with interface
java.util.RandomAccess
But LinkedList for example just iterates the list until
It's not dangerous or risky. It's just slower. It won't break anything.
The common case is that this change will have better performance in
all known situations.
I haven't looked at the code, but what about creating a static
Iterator instead of creating a new one each time?
Or picking whether