[ http://jira.codehaus.org/browse/DISPL-380?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=163263#action_163263 ]
German Ruiz commented on DISPL-380: ----------------------------------- I delete my patch because have an error when the class/style change between differents rows for the same column. So, Can I omit instanciate HtmlAttributeMap when the currentMediaType is HTML? > Very poor performance on bigger list or bigger <display:table> tag content > -------------------------------------------------------------------------- > > Key: DISPL-380 > URL: http://jira.codehaus.org/browse/DISPL-380 > Project: DisplayTag > Issue Type: Bug > Components: Tag Library > Affects Versions: 1.1 > Reporter: Tomasz Bech > Priority: Critical > > When the list to display is average (in my case ~2000) and there is big > content of <display:table> preformance is very poor: ~40 second to display 20 > results out of 2000. > I dig out and now see the way to improve it. > Scenario > <display:table contains some logic + display:columnt tags: > <display:table id="oc" name="results" pagesize="${pagesize}" > requestURI="${request.contextPath}" sort="list" > defaultsort="1"> > <!-- some logic here about 20 logic tags - very needed --> > <logic:iterate id="attr" name="x" property="b"> > ..... > <display:column > property="a" > .... > /> > </display:table> > Obviously the display:table iterates its content through whole list - so all > the tags are evaluated list.size() times. And it is very time consuming. > doAfterBody called on TableTag in loop takes 38 seconds and real display of > table (doEndTag) 2s in my case. > In fact it is enough to iterate the body of display:table ONCE, build the > column structure and do the job in doEndTag. It will improve performance > dramatically in such cases. > The only difference is that there cannot be any code inside which depends on > the current row (for example getting the value from row and using it in > anyway. > To keep compatibility, new flag can be added: evaluateBodyOnce [boolean] (or > buildColumnStructureOnce) to switch from every-row-body-evaluation to > one-time-body-evaluation. > (Now to improve performance a little bit, partialList can be used, but there > is a lot of code to write addtionaly - to sort, to tract offset, etc). -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://jira.codehaus.org/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira ------------------------------------------------------------------------------ This SF.net email is sponsored by: SourcForge Community SourceForge wants to tell your story. http://p.sf.net/sfu/sf-spreadtheword _______________________________________________ displaytag-devel mailing list displaytag-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/displaytag-devel