You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by jb...@apache.org on 2014/11/29 21:20:00 UTC
svn commit: r1642472 -
/tomcat/taglibs/standard/trunk/impl/src/test/java/org/apache/taglibs/standard/tag/common/xml/ForEachTagTest.java
Author: jboynes
Date: Sat Nov 29 20:20:00 2014
New Revision: 1642472
URL: http://svn.apache.org/r1642472
Log:
Add benchmark using Xalan's public XPath API. Has same DTM re-creation problem as JAXP XPath
Modified:
tomcat/taglibs/standard/trunk/impl/src/test/java/org/apache/taglibs/standard/tag/common/xml/ForEachTagTest.java
Modified: tomcat/taglibs/standard/trunk/impl/src/test/java/org/apache/taglibs/standard/tag/common/xml/ForEachTagTest.java
URL: http://svn.apache.org/viewvc/tomcat/taglibs/standard/trunk/impl/src/test/java/org/apache/taglibs/standard/tag/common/xml/ForEachTagTest.java?rev=1642472&r1=1642471&r2=1642472&view=diff
==============================================================================
--- tomcat/taglibs/standard/trunk/impl/src/test/java/org/apache/taglibs/standard/tag/common/xml/ForEachTagTest.java (original)
+++ tomcat/taglibs/standard/trunk/impl/src/test/java/org/apache/taglibs/standard/tag/common/xml/ForEachTagTest.java Sat Nov 29 20:20:00 2014
@@ -34,6 +34,7 @@ import org.junit.Ignore;
import org.junit.Test;
import org.apache.xml.dtm.DTMIterator;
+import org.apache.xpath.CachedXPathAPI;
import org.apache.xpath.XPath;
import org.apache.xpath.XPathContext;
import org.apache.xpath.objects.XObject;
@@ -46,6 +47,7 @@ import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
+import org.w3c.dom.traversal.NodeIterator;
/**
*/
@@ -141,11 +143,11 @@ public class ForEachTagTest {
tag.doFinally();
}
time += System.nanoTime();
- System.err.println("time = " + time/1000000 + "ms.");
+ System.err.println("time = " + time / 1000000 + "ms.");
assertEquals("199999", result.str());
}
- @Ignore
+ @Ignore("Takes < 1s to run")
@Test
public void xalanPerformance() throws Exception{
Document doc = newBenchmarkDocument(200000);
@@ -180,7 +182,30 @@ public class ForEachTagTest {
assertEquals("199999", result.str());
}
- @Ignore
+ @Ignore("Takes > 20s to run")
+ @Test
+ public void cachedAPIPerformance() throws Exception{
+ Document doc = newBenchmarkDocument(200000);
+ expect(pageContext.findAttribute("doc")).andStubReturn(doc);
+ replay(pageContext);
+
+ Node result = null;
+ CachedXPathAPI api = new CachedXPathAPI();
+ api.getXPathContext().setVarStack(new JSTLVariableStack(pageContext));
+
+ long time = -System.nanoTime();
+ NodeIterator iterator = api.selectNodeIterator(XmlUtil.newEmptyDocument(), "$doc/root/a");
+ Node node = iterator.nextNode();
+ while (node != null) {
+ result = api.selectSingleNode(node, ".");
+ node = iterator.nextNode();
+ }
+ time += System.nanoTime();
+ System.err.println("time = " + time/1000000 + "ms.");
+ assertEquals("199999", result.getTextContent());
+ }
+
+ @Ignore("Takes > 20s to run")
@Test
public void xpathPerformance() throws Exception {
final Document doc = newBenchmarkDocument(200000);
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org