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

Reply via email to