2 Replies Latest reply on Aug 14, 2012 2:18 PM by seuparada

    Extra cpu overhead in ajax4jsf

    tnt9062

      Hello,

      I use Richfaces 3.3.2 components in my project and did stress testing of largest page.

      This page has a few ExtendDataTables, buttons, edit fields and modal ajax forms.

      Lots of a virtual users requested this page and click on buttons randomly.

       

      70% of total time was spend on method org.ajax4jsf.org.w3c.tidy.TagTable.getNodeByAnchor and org.ajax4jsf.org.w3c.tidy.TagTable.addAnchor (See images in attachments).

       

      What this method? How to avoid calling it many times?

       

      Thanks.

       

       

      Full stack
      Trace   Sample Count
      org.ajax4jsf.org.w3c.tidy.TagTable.getNodeByAnchor(String)  7 156
         org.ajax4jsf.org.w3c.tidy.AttrCheckImpl$CheckId.check(Lexer, Node, AttVal)            7 154
            org.ajax4jsf.org.w3c.tidy.AttVal.checkAttribute(Lexer, Node)          7 154
               org.ajax4jsf.org.w3c.tidy.Node.checkAttributes(Lexer)    7 136
                  org.ajax4jsf.org.w3c.tidy.TagCheckImpl$CheckTableCell.check(Lexer, Node)  7 088
                     org.ajax4jsf.org.w3c.tidy.Lexer.getToken(short)        7 088
                        org.ajax4jsf.org.w3c.tidy.ParserImpl$ParseRow.parse(Lexer, Node, short) 7 088
                           org.ajax4jsf.org.w3c.tidy.ParserImpl.parseTag(Lexer, Node, short)         7 088
                              org.ajax4jsf.org.w3c.tidy.ParserImpl$ParseRowGroup.parse(Lexer, Node, short)            7 088
                                 org.ajax4jsf.org.w3c.tidy.ParserImpl.parseTag(Lexer, Node, short)   7 088
                                    org.ajax4jsf.org.w3c.tidy.ParserImpl$ParseTableTag.parse(Lexer, Node, short)            7 088
                                       org.ajax4jsf.org.w3c.tidy.ParserImpl.parseTag(Lexer, Node, short)         7 088
                                          org.ajax4jsf.org.w3c.tidy.ParserImpl$ParseBlock.parse(Lexer, Node, short)            7 088
                                             org.ajax4jsf.org.w3c.tidy.ParserImpl.parseTag(Lexer, Node, short)   7 088
                                                org.ajax4jsf.org.w3c.tidy.ParserImpl$ParseRow.parse(Lexer, Node, short)   7 066
                                                   org.ajax4jsf.org.w3c.tidy.ParserImpl.parseTag(Lexer, Node, short)            7 066
                                                      org.ajax4jsf.org.w3c.tidy.ParserImpl$ParseRowGroup.parse(Lexer, Node, short)     7 066
                                                         org.ajax4jsf.org.w3c.tidy.ParserImpl.parseTag(Lexer, Node, short)   7 066
                                                            org.ajax4jsf.org.w3c.tidy.ParserImpl$ParseTableTag.parse(Lexer, Node, short)           7 066
                                                               org.ajax4jsf.org.w3c.tidy.ParserImpl.parseTag(Lexer, Node, short)   7 066
                                                                  org.ajax4jsf.org.w3c.tidy.ParserImpl$ParseBlock.parse(Lexer, Node, short)     7 066
                                                                     org.ajax4jsf.org.w3c.tidy.ParserImpl.parseTag(Lexer, Node, short)     7 066
                                                                        org.ajax4jsf.org.w3c.tidy.ParserImpl$ParseRow.parse(Lexer, Node, short)       7 066
                                                                           org.ajax4jsf.org.w3c.tidy.ParserImpl.parseTag(Lexer, Node, short)     7 066
                                                                              org.ajax4jsf.org.w3c.tidy.ParserImpl$ParseRowGroup.parse(Lexer, Node, short)         7 066
                                                                                 org.ajax4jsf.org.w3c.tidy.ParserImpl.parseTag(Lexer, Node, short)      7 066
                                                                                    org.ajax4jsf.org.w3c.tidy.ParserImpl$ParseTableTag.parse(Lexer, Node, short)           7 066
                                                                                       org.ajax4jsf.org.w3c.tidy.ParserImpl.parseTag(Lexer, Node, short)      7 066
                                                                                          org.ajax4jsf.org.w3c.tidy.ParserImpl$ParseBody.parse(Lexer, Node, short)      7 066
                                                                                             org.ajax4jsf.org.w3c.tidy.ParserImpl.parseTag(Lexer, Node, short)      7 066
                                                                                                org.ajax4jsf.org.w3c.tidy.ParserImpl$ParseHTML.parse(Lexer, Node, short)    7 066
                                                                                                   org.ajax4jsf.org.w3c.tidy.ParserImpl.parseDocument(Lexer)     7 066
                                                                                                      org.ajax4jsf.org.w3c.tidy.Tidy.parse(Object, String, OutputStream)      7 066
                                                                                                         org.ajax4jsf.org.w3c.tidy.Tidy.parse(Object, OutputStream)     7 066
                                                                                                            org.ajax4jsf.org.w3c.tidy.Tidy.parseDOM(Object, OutputStream)         7 066
                                                                                                               org.ajax4jsf.webapp.tidy.TidyParser.parseHtmlByTidy(Object, Writer)  7 066
                                                                                                                  org.ajax4jsf.webapp.tidy.TidyParser.parseHtml(Reader, Writer)           7 066
                                                                                                                     org.ajax4jsf.webapp.FilterServletResponseWrapper.parseContent(Writer, HtmlParser) 7 066
                                                                                                                        org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(FilterChain, HttpServletRequest, HttpServletResponse)  7 066
                                                                                                                           org.ajax4jsf.webapp.BaseFilter.handleRequest(HttpServletRequest, HttpServletResponse, FilterChain)      7 066
                                                                                                                              org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(HttpServletRequest, HttpServletResponse, FilterChain)        7 066
                                                                                                                                 org.ajax4jsf.webapp.BaseFilter.doFilter(ServletRequest, ServletResponse, FilterChain)            7 066
                                                                                                                                    weblogic.servlet.internal.FilterChainImpl.doFilter(ServletRequest, ServletResponse)    7 066
                                                                                                                                       weblogic.servlet.internal.RequestEventsFilter.doFilter(ServletRequest, ServletResponse, FilterChain)      7 066
                                                                                                                                          weblogic.servlet.internal.FilterChainImpl.doFilter(ServletRequest, ServletResponse)    7 066
                                                                                                                                             weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(ServletStubImpl, HttpServletRequest, HttpServletResponse)      7 066
                                                                                                                                                weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run() 7 066
                                                                                                                                                   weblogic.security.acl.internal.AuthenticatedSubject.doAs(AbstractSubject, PrivilegedAction)    7 066
                                                                                                                                                      weblogic.security.service.SecurityManager.runAs(AuthenticatedSubject, AuthenticatedSubject, PrivilegedAction)          7 066
                                                                                                                                                         weblogic.servlet.internal.WebAppServletContext.securedExecute(HttpServletRequest, HttpServletResponse, boolean) 7 066
                                                                                                                                                            weblogic.servlet.internal.WebAppServletContext.execute(ServletRequestImpl, ServletResponseImpl)  7 066
                                                                                                                                                               weblogic.servlet.internal.ServletRequestImpl.run()       7 066
                                                                                                                                                                  weblogic.work.ExecuteThread.execute(Runnable)        7 066
                                                                                                                                                                     weblogic.work.ExecuteThread.run()      7 066
                                                                                                                                                                        jrockit.vm.RNI.c2java(int, int, int, int, int)          7 066