[Lxml-checkins] r40613 - lxml/trunk/benchmark

scoder at codespeak.net scoder at codespeak.net
Fri Mar 16 20:26:16 CET 2007


Author: scoder
Date: Fri Mar 16 20:26:13 2007
New Revision: 40613

Modified:
   lxml/trunk/benchmark/bench_xpath.py
Log:
benchmark both the old and the new way of using extension functions

Modified: lxml/trunk/benchmark/bench_xpath.py
==============================================================================
--- lxml/trunk/benchmark/bench_xpath.py	(original)
+++ lxml/trunk/benchmark/bench_xpath.py	Fri Mar 16 20:26:13 2007
@@ -34,7 +34,7 @@
             child.xpath("./*[0]")
 
     @onlylib('lxe')
-    def bench_xpath_extensions_old(self, root):
+    def bench_xpath_old_extensions(self, root):
         def return_child(_, element):
             if element:
                 return element[0]
@@ -45,5 +45,21 @@
         for child in root:
             xpath(child)
 
+    @onlylib('lxe')
+    def bench_xpath_extensions(self, root):
+        def return_child(_, element):
+            if element:
+                return element[0]
+            else:
+                return ()
+        self.etree.FunctionNamespace("test")["t"] = return_child
+
+        try:
+            xpath = self.etree.XPath("test:t(.)", {"test":"test"})
+            for child in root:
+                xpath(child)
+        finally:
+            del self.etree.FunctionNamespace("test")["t"]
+
 if __name__ == '__main__':
     benchbase.main(XPathBenchMark)


More information about the lxml-checkins mailing list