Mercurial > hgrepos > Python > libs > ConfigMix
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))
