diff tests/_perf_config.py @ 543:491413368c7c

Added also a fast C-implementation of configmix.config._split_ns
author Franz Glasner <fzglas.hg@dom66.de>
date Sat, 01 Jan 2022 18:01:32 +0100
parents f71d34dda19f
children 79db28e879f8
line wrap: on
line diff
--- a/tests/_perf_config.py	Fri Dec 31 21:24:16 2021 +0100
+++ b/tests/_perf_config.py	Sat Jan 01 18:01:32 2022 +0100
@@ -16,19 +16,20 @@
 all = not opts or "all" in opts
 
 try:
-    from configmix.config import fast_unquote, fast_pathstr2path
+    from configmix.config import fast_unquote, fast_pathstr2path, _fast_split_ns
 except ImportError:
-    fast_unquote = fast_pathstr2path = None
+    fast_unquote = fast_pathstr2path = _fast_split_ns = None
 
 setup = """
 import os
 
 import configmix
-from configmix.config import _HIER_SEPARATOR, quote, py_pathstr2path, py_unquote
+from configmix.config import _HIER_SEPARATOR, quote, py_pathstr2path, \
+                             py_unquote, _py_split_ns
 try:
-    from configmix.config import fast_unquote, fast_pathstr2path
+    from configmix.config import fast_unquote, fast_pathstr2path, _fast_split_ns
 except ImportError:
-    fast_unquote = fast_pathstr2path = None
+    fast_unquote = fast_pathstr2path = _fast_split_ns = None
 
 TESTDATADIR = os.path.join(
     os.path.abspath(os.path.dirname(configmix.__file__)),
@@ -40,6 +41,7 @@
 
 se = u""
 s1 = u"abc.def.hij"
+ns_s1 = u"PY:abc.def.hij"
 
 """
 
@@ -56,14 +58,19 @@
         print("fast-unquote/nothing/split: %.4f" % timeit.timeit('a = [fast_unquote(vp) for vp in u"abc.def.hij".split(_HIER_SEPARATOR)]', setup=setup, number=num_quote))
         print("fast-unquote/yes/split: %.4f" % timeit.timeit('a = [fast_unquote(vp) for vp in u"ab%x20.def.h%x2ej".split(_HIER_SEPARATOR)]', setup=setup, number=num_quote))
         print("fast-unquote/nothing/no-split: %.4f" % timeit.timeit('a = [fast_unquote(vp) for vp in (u"abc," u"def", u"hij")]', setup=setup, number=num_quote))
-        print("fast-unquote/yes/no-split: %.4f" % timeit.timeit('a = [fast_unquote(vp) for vp in (u"ab%x20", u"def", u"h%x2ej")]', setup=setup, number=num_quote))    
+        print("fast-unquote/yes/no-split: %.4f" % timeit.timeit('a = [fast_unquote(vp) for vp in (u"ab%x20", u"def", u"h%x2ej")]', setup=setup, number=num_quote))
     print("pathstr2path/non-empty: %.4f" % timeit.timeit('a = py_pathstr2path(s1)', setup=setup, number=num_quote))
     print("pathstr2path/empty: %.4f" % timeit.timeit('a = py_pathstr2path(se)', setup=setup, number=num_quote))
     if fast_pathstr2path:
         print("fast-pathstr2path/non-empty: %.4f" % timeit.timeit('a = fast_pathstr2path(s1)', setup=setup, number=num_quote))
-        print("fast-pathstr2path/empty: %.4f" % timeit.timeit('a = fast_pathstr2path(se)', setup=setup, number=num_quote))    
+        print("fast-pathstr2path/empty: %.4f" % timeit.timeit('a = fast_pathstr2path(se)', setup=setup, number=num_quote))
     print("quote/nothing: %.4f" % timeit.timeit('a = [quote(vp) for vp in (u"abc", u"def", u"hij")]', setup=setup, number=num_quote))
     print("quote/yes: %.4f" % timeit.timeit('a = [quote(vp) for vp in (u"ab:c", u"def", u"h.ij")]', setup=setup, number=num_quote))
+    print("split-ns/no-ns: %.4f" % timeit.timeit('a = _py_split_ns(s1)', setup=setup, number=num_quote))
+    print("split-ns/ns: %.4f" % timeit.timeit('a = _py_split_ns(ns_s1)', setup=setup, number=num_quote))    
+    if _fast_split_ns:
+        print("fast-split-ns/no-ns: %.4f" % timeit.timeit('a = _fast_split_ns(s1)', setup=setup, number=num_quote))
+        print("fast-split-ns/ns: %.4f" % timeit.timeit('a = _fast_split_ns(ns_s1)', setup=setup, number=num_quote))                
     print("="*50)
 
 if all or "default" in opts or "non-existing" in opts:
@@ -92,7 +99,7 @@
     print("expand-string-one-noncached: %.4f" % timeit.timeit('cfg.getvarl_s(u"tree1", u"tree2", "key12")', setup=setup, number=num))
     print("expand-string-one-noncached: %.4f" % timeit.timeit('cfg.getvar(u"tree1.tree2.key12")', setup=setup, number=num))
     print("expand-string-one-noncached: %.4f" % timeit.timeit('cfg.getvar_s(u"tree1.tree2.key12")', setup=setup, number=num))
-    print("-"*50)    
+    print("-"*50)
 
 if all or "expand-string-many" in opts:
     print("expand-string-many: %.4f" % timeit.timeit('cfg.getvarl(u"tree1", u"tree2", "key10")', setup=setup, number=num))
@@ -106,7 +113,7 @@
     print("expand-string-many-noncached: %.4f" % timeit.timeit('cfg.getvarl_s(u"tree1", u"tree2", u"key13")', setup=setup, number=num))
     print("expand-string-many-noncached: %.4f" % timeit.timeit('cfg.getvar(u"tree1.tree2.key13")', setup=setup, number=num))
     print("expand-string-many-noncached: %.4f" % timeit.timeit('cfg.getvar_s(u"tree1.tree2.key13")', setup=setup, number=num))
-    print("-"*50)    
+    print("-"*50)
 
 if all or "expand-list" in opts:
     print("expand-list: %.4f" % timeit.timeit('cfg.getvarl(u"tree1", u"tree2", "key8")', setup=setup, number=num))