diff tests/_perf_config.py @ 550:79db28e879f8

Provide a C-implementation of configmix.config.quote() also: fast_quote
author Franz Glasner <fzglas.hg@dom66.de>
date Sun, 02 Jan 2022 02:04:07 +0100
parents 491413368c7c
children 75ecbe07abff
line wrap: on
line diff
--- a/tests/_perf_config.py	Sun Jan 02 01:00:10 2022 +0100
+++ b/tests/_perf_config.py	Sun Jan 02 02:04:07 2022 +0100
@@ -16,20 +16,22 @@
 all = not opts or "all" in opts
 
 try:
-    from configmix.config import fast_unquote, fast_pathstr2path, _fast_split_ns
+    from configmix.config import fast_unquote, fast_quote, \
+                                 fast_pathstr2path, _fast_split_ns
 except ImportError:
-    fast_unquote = fast_pathstr2path = _fast_split_ns = None
+    fast_unquote = fast_quote = fast_pathstr2path = _fast_split_ns = None
 
 setup = """
 import os
 
 import configmix
-from configmix.config import _HIER_SEPARATOR, quote, py_pathstr2path, \
-                             py_unquote, _py_split_ns
+from configmix.config import _HIER_SEPARATOR, \
+                             py_quote, py_unquote, py_pathstr2path, \
+                             _py_split_ns
 try:
-    from configmix.config import fast_unquote, fast_pathstr2path, _fast_split_ns
+    from configmix.config import fast_unquote, fast_quote, fast_pathstr2path, _fast_split_ns
 except ImportError:
-    fast_unquote = fast_pathstr2path = _fast_split_ns = None
+    fast_unquote = fast_quote = fast_pathstr2path = _fast_split_ns = None
 
 TESTDATADIR = os.path.join(
     os.path.abspath(os.path.dirname(configmix.__file__)),
@@ -64,8 +66,12 @@
     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("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("quote/nothing: %.4f" % timeit.timeit('a = [py_quote(vp) for vp in (u"abc", u"def", u"hij")]', setup=setup, number=num_quote))
+    print("quote/yes: %.4f" % timeit.timeit('a = [py_quote(vp) for vp in (u"ab:c", u"def", u"h.ij")]', setup=setup, number=num_quote))
+    if fast_quote:
+        print("fast-quote/nothing: %.4f" % timeit.timeit('a = [fast_quote(vp) for vp in (u"abc", u"def", u"hij")]', setup=setup, number=num_quote))
+        print("fast-quote/yes: %.4f" % timeit.timeit('a = [fast_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: