Mercurial > hgrepos > Python > libs > ConfigMix
comparison 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 |
comparison
equal
deleted
inserted
replaced
| 549:84657447ab39 | 550:79db28e879f8 |
|---|---|
| 14 | 14 |
| 15 opts = sys.argv[1:] | 15 opts = sys.argv[1:] |
| 16 all = not opts or "all" in opts | 16 all = not opts or "all" in opts |
| 17 | 17 |
| 18 try: | 18 try: |
| 19 from configmix.config import fast_unquote, fast_pathstr2path, _fast_split_ns | 19 from configmix.config import fast_unquote, fast_quote, \ |
| 20 fast_pathstr2path, _fast_split_ns | |
| 20 except ImportError: | 21 except ImportError: |
| 21 fast_unquote = fast_pathstr2path = _fast_split_ns = None | 22 fast_unquote = fast_quote = fast_pathstr2path = _fast_split_ns = None |
| 22 | 23 |
| 23 setup = """ | 24 setup = """ |
| 24 import os | 25 import os |
| 25 | 26 |
| 26 import configmix | 27 import configmix |
| 27 from configmix.config import _HIER_SEPARATOR, quote, py_pathstr2path, \ | 28 from configmix.config import _HIER_SEPARATOR, \ |
| 28 py_unquote, _py_split_ns | 29 py_quote, py_unquote, py_pathstr2path, \ |
| 30 _py_split_ns | |
| 29 try: | 31 try: |
| 30 from configmix.config import fast_unquote, fast_pathstr2path, _fast_split_ns | 32 from configmix.config import fast_unquote, fast_quote, fast_pathstr2path, _fast_split_ns |
| 31 except ImportError: | 33 except ImportError: |
| 32 fast_unquote = fast_pathstr2path = _fast_split_ns = None | 34 fast_unquote = fast_quote = fast_pathstr2path = _fast_split_ns = None |
| 33 | 35 |
| 34 TESTDATADIR = os.path.join( | 36 TESTDATADIR = os.path.join( |
| 35 os.path.abspath(os.path.dirname(configmix.__file__)), | 37 os.path.abspath(os.path.dirname(configmix.__file__)), |
| 36 "..", | 38 "..", |
| 37 "tests", | 39 "tests", |
| 62 print("pathstr2path/non-empty: %.4f" % timeit.timeit('a = py_pathstr2path(s1)', setup=setup, number=num_quote)) | 64 print("pathstr2path/non-empty: %.4f" % timeit.timeit('a = py_pathstr2path(s1)', setup=setup, number=num_quote)) |
| 63 print("pathstr2path/empty: %.4f" % timeit.timeit('a = py_pathstr2path(se)', setup=setup, number=num_quote)) | 65 print("pathstr2path/empty: %.4f" % timeit.timeit('a = py_pathstr2path(se)', setup=setup, number=num_quote)) |
| 64 if fast_pathstr2path: | 66 if fast_pathstr2path: |
| 65 print("fast-pathstr2path/non-empty: %.4f" % timeit.timeit('a = fast_pathstr2path(s1)', setup=setup, number=num_quote)) | 67 print("fast-pathstr2path/non-empty: %.4f" % timeit.timeit('a = fast_pathstr2path(s1)', setup=setup, number=num_quote)) |
| 66 print("fast-pathstr2path/empty: %.4f" % timeit.timeit('a = fast_pathstr2path(se)', setup=setup, number=num_quote)) | 68 print("fast-pathstr2path/empty: %.4f" % timeit.timeit('a = fast_pathstr2path(se)', setup=setup, number=num_quote)) |
| 67 print("quote/nothing: %.4f" % timeit.timeit('a = [quote(vp) for vp in (u"abc", u"def", u"hij")]', setup=setup, number=num_quote)) | 69 print("quote/nothing: %.4f" % timeit.timeit('a = [py_quote(vp) for vp in (u"abc", u"def", u"hij")]', setup=setup, number=num_quote)) |
| 68 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)) | 70 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)) |
| 71 if fast_quote: | |
| 72 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)) | |
| 73 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)) | |
| 74 | |
| 69 print("split-ns/no-ns: %.4f" % timeit.timeit('a = _py_split_ns(s1)', setup=setup, number=num_quote)) | 75 print("split-ns/no-ns: %.4f" % timeit.timeit('a = _py_split_ns(s1)', setup=setup, number=num_quote)) |
| 70 print("split-ns/ns: %.4f" % timeit.timeit('a = _py_split_ns(ns_s1)', setup=setup, number=num_quote)) | 76 print("split-ns/ns: %.4f" % timeit.timeit('a = _py_split_ns(ns_s1)', setup=setup, number=num_quote)) |
| 71 if _fast_split_ns: | 77 if _fast_split_ns: |
| 72 print("fast-split-ns/no-ns: %.4f" % timeit.timeit('a = _fast_split_ns(s1)', setup=setup, number=num_quote)) | 78 print("fast-split-ns/no-ns: %.4f" % timeit.timeit('a = _fast_split_ns(s1)', setup=setup, number=num_quote)) |
| 73 print("fast-split-ns/ns: %.4f" % timeit.timeit('a = _fast_split_ns(ns_s1)', setup=setup, number=num_quote)) | 79 print("fast-split-ns/ns: %.4f" % timeit.timeit('a = _fast_split_ns(ns_s1)', setup=setup, number=num_quote)) |
