Extra cpu overhead in ajax4jsf
tnt9062 Jul 1, 2011 5:48 AMHello,
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
-
hot_methods.png 46.0 KB
-
overview.png 89.3 KB