+1! I thought RandomAccess was implemented by way more classes, but looking at the list of implementors, I guess checking for RandomAccess is the best choice.
2011/5/14 Jakob Korherr (JIRA) <dev@myfaces.apache.org> > > [ > https://issues.apache.org/jira/browse/MYFACES-3130?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13033496#comment-13033496] > > Jakob Korherr commented on MYFACES-3130: > ---------------------------------------- > > +1 for that Jan-Kees. > > But I would check for (instanceof RandomAccess) rather than ArrayList (see > [1]). > > [1] > http://download.oracle.com/javase/1,5.0/docs/api/java/util/RandomAccess.html > > > [PERF] Avoid unnecessary AbstractList$Itr instances > > --------------------------------------------------- > > > > Key: MYFACES-3130 > > URL: https://issues.apache.org/jira/browse/MYFACES-3130 > > Project: MyFaces Core > > Issue Type: Improvement > > Components: JSR-314 > > Environment: myfaces core trunk > > Reporter: Martin Kočí > > Attachments: MYFACES-3130-example.patch > > > > > > Similar issue: MYFACES-3129 > > loop from java 5: > > for (Object object: objects) > > creates new instance of AbstractList$Itr, if objects are instance of > ArrayList. > > Similar situation is with explicit .iterator() call. > > In my testcases, it is about ~ 100 000 instances per request/response. > Creation itself is cheap, but triggers GC lately. > > I suggest to use old index-style for (i = 0; i < childCount; i++) if > possible. Are there any rawbacks of index-based iteration? > > Children is List and as implementation detail we know that it is > instance of ArrayList. > > -- > This message is automatically generated by JIRA. > For more information on JIRA, see: http://www.atlassian.com/software/jira >