On Fri, Oct 25, 2013 at 5:14 AM, Felix Schumacher <felix.schumac...@internetallee.de> wrote: > On Do, 2013-10-24 at 11:29 -0400, Stephen More wrote: >> I came across this paper by Peter Lin ( >> http://tomcat.apache.org/articles/performance.pdf ). In a simple xml >> addressbook war he summarizes how different variables affect the speed >> of the application. In one test he compares: >> Sun X1 400mhz Ultra Sparc IIe - 5 requests/sec >> AMD 2ghz XP - 25 request/sec >> It appears that both used Tomcat 4.1.19 and Sun Jdk1.4.1_01 >> >> In an attempt to see what todays numbers look like I rebuilt the war ( >> svn co https://maven-examples.googlecode.com/svn/trunk/addrbook ) and >> deployed in my environment >> Core i7-3720 QM @ 2.60 GHz >> SSD disk >> java version "1.7.0_45" >> apache-tomcat-7.0.42 >> >> package the war - mvn package >> execute jmeter - mvn verify >> >> Jmeter shows my Throughput of 2.2 requests/sec ! With all the advances >> over the years ( or overhead ) are we just slowing down or are one of >> our results flawed ? ( I am running in VirtualBox - I think this would >> slow some things down - but not this much. ) >> >> Are others seeing similar results ? > I get almost the same throughput, but I don't believe it is tomcats > fault (well not directly). > > If you look at the stacktraces while doing the jmeter test, you will see > very often a stack trace like this: > > "http-nio-8080-exec-8" daemon prio=10 tid=0x00007fb83400b800 nid=0x2511 > runnable [0x00007fb88847b000] > java.lang.Thread.State: RUNNABLE > at > com.sun.org.apache.xml.internal.dtm.ref.ExpandedNameTable.getExpandedTypeID(ExpandedNameTable.java:160) > at > com.sun.org.apache.xml.internal.dtm.ref.dom2dtm.DOM2DTM.addNode(DOM2DTM.java:293) > at > com.sun.org.apache.xml.internal.dtm.ref.dom2dtm.DOM2DTM.nextNode(DOM2DTM.java:524) > at > com.sun.org.apache.xml.internal.dtm.ref.dom2dtm.DOM2DTM.getHandleFromNode(DOM2DTM.java:680) > at > com.sun.org.apache.xml.internal.dtm.ref.dom2dtm.DOM2DTM.getHandleOfNode(DOM2DTM.java:732) > at > com.sun.org.apache.xml.internal.dtm.ref.DTMManagerDefault.getDTMHandleFromNode(DTMManagerDefault.java:576) > - locked <0x00000000f20af5e8> (a > com.sun.org.apache.xml.internal.dtm.ref.DTMManagerDefault) > at > com.sun.org.apache.xpath.internal.XPathContext.getDTMHandleFromNode(XPathContext.java:188) > at com.sun.org.apache.xpath.internal.XPath.execute(XPath.java:305) > at > org.apache.taglibs.standard.tag.common.xml.JSTLXPathImpl.eval(JSTLXPathImpl.java:222) > at > org.apache.taglibs.standard.tag.common.xml.JSTLXPathImpl.evaluate(JSTLXPathImpl.java:287) > at > org.apache.taglibs.standard.tag.common.xml.JSTLXPathImpl.evaluate(JSTLXPathImpl.java:385) > at > org.apache.taglibs.standard.tag.common.xml.XPathUtil.valueOf(XPathUtil.java:213) > at > org.apache.taglibs.standard.tag.common.xml.ExprSupport.doStartTag(ExprSupport.java:73) > at > org.apache.taglibs.standard.tag.el.xml.ExprTag.doStartTag(ExprTag.java:71) > at > org.apache.jsp.simple_005f100_jsp._jspx_meth_x_005fout_005f0(simple_005f100_jsp.java:411) > at > org.apache.jsp.simple_005f100_jsp._jspx_meth_x_005fforEach_005f1(simple_005f100_jsp.java:377) > at > org.apache.jsp.simple_005f100_jsp._jspx_meth_x_005fforEach_005f0(simple_005f100_jsp.java:336) > at > org.apache.jsp.simple_005f100_jsp._jspService(simple_005f100_jsp.java:118) > at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) > > > If you search for > "com.sun.org.apache.xpath.internal.XPathContext.getDTMHandleFromNode > slow jstl" you will get to a bugzilla entry for jstl from > https://issues.apache.org/bugzilla/show_bug.cgi?id=27717 which is > closed. > > That bugentry suggested, that an xslt-Transfrom would be faster, than > using <x:forEach> and if you try to replace the forEach loop with a > transform, you will get better response times (on my system throughput > went up from 1.6 r/s to 23.6 r/s for one thread. (I try to attach my > changes, but sometimes the list strips attachements...) > > So either the bug has been reintroduced into jstl, or it is really slow > and should be avoided.
Felix - thanks for your help. The current jstl version in the pom.xml is 1.2 which looks like it was released in July 2006. Bug 27717 was not fixed until December 2010. I built and installed from source: http://svn.apache.org/repos/asf//tomcat/taglibs/standard/trunk/ and now I am getting 44 r/s !! I now have 2 questions: 1 - When is the expected release of org.apache.taglibs taglibs-standard-impl ? > All in all I think you should do your performance tests with a more > modern benchmark. It would be best, if it would expose your expected > workload and not someone others. 2 - What modern benchmark would you recommend for tomcat that includes published results ? > Regards > Felix > >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org >> For additional commands, e-mail: users-h...@tomcat.apache.org >> > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org > For additional commands, e-mail: users-h...@tomcat.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org