changeset 496:36ab39e3de53

A script to measure some basic performance characteristics of configmix. BUGS: Not yet finished.
author Franz Glasner <fzglas.hg@dom66.de>
date Fri, 17 Dec 2021 23:53:11 +0100
parents 3f0c932588fc
children 8e516f17cf95
files tests/_perf_config.py tests/data/conf_perf.py
diffstat 2 files changed, 80 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/_perf_config.py	Fri Dec 17 23:53:11 2021 +0100
@@ -0,0 +1,50 @@
+# -*- coding: utf-8 -*-
+
+from __future__ import print_function
+
+import os
+import sys
+import timeit
+
+sys.path.insert(
+    0,
+    os.path.abspath(
+        os.path.normpath(os.path.join(os.path.dirname(__file__), ".."))))
+
+setup = """
+import os
+
+import configmix
+
+TESTDATADIR = os.path.join(
+    os.path.abspath(os.path.dirname(configmix.__file__)),
+    "..",
+    "tests",
+    "data")
+
+cfg = configmix.load(os.path.join(TESTDATADIR, "conf_perf.py"))
+
+"""
+
+
+num = 1000000
+
+print("xxx: %.3f" % timeit.timeit('cfg.getvarl(u"xxx", u"yyy", default=None)', setup=setup, number=num))
+print("xxx: %.3f" % timeit.timeit('cfg.getvarl_s(u"xxx", "yyy", default=None)', setup=setup, number=num))
+print("xxx: %.3f" % timeit.timeit('cfg.getvar(u"xxx.yyy", default=None)', setup=setup, number=num))
+print("xxx: %.3f" % timeit.timeit('cfg.getvar_s(u"xxx.yyy", default=None)', setup=setup, number=num))
+
+print("xxx: %.3f" % timeit.timeit('cfg.getvarl(u"tree1", u"tree2", "key4")', setup=setup, number=num))
+print("xxx: %.3f" % timeit.timeit('cfg.getvarl_s(u"tree1", u"tree2", "key4")', setup=setup, number=num))
+print("xxx: %.3f" % timeit.timeit('cfg.getvar(u"tree1.tree2.key4")', setup=setup, number=num))
+print("xxx: %.3f" % timeit.timeit('cfg.getvar_s(u"tree1.tree2.key4")', setup=setup, number=num))
+
+print("xxx: %.3f" % timeit.timeit('cfg.getvarl(u"tree1", u"tree2", "key10")', setup=setup, number=num))
+print("xxx: %.3f" % timeit.timeit('cfg.getvarl_s(u"tree1", u"tree2", "key10")', setup=setup, number=num))
+print("xxx: %.3f" % timeit.timeit('cfg.getvar(u"tree1.tree2.key10")', setup=setup, number=num))
+print("xxx: %.3f" % timeit.timeit('cfg.getvar_s(u"tree1.tree2.key10")', setup=setup, number=num))
+
+print("xxx: %.3f" % timeit.timeit('cfg.getvarl(u"tree1", u"tree2", "key8")', setup=setup, number=num))
+print("xxx: %.3f" % timeit.timeit('cfg.getvarl_s(u"tree1", u"tree2", "key8")', setup=setup, number=num))
+print("xxx: %.3f" % timeit.timeit('cfg.getvar(u"tree1.tree2.key8")', setup=setup, number=num))
+print("xxx: %.3f" % timeit.timeit('cfg.getvar_s(u"tree1.tree2.key8")', setup=setup, number=num))
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/data/conf_perf.py	Fri Dec 17 23:53:11 2021 +0100
@@ -0,0 +1,30 @@
+# -*- coding: utf-8 -*-
+
+__all__ = ["key1", "key2", "tree1"]
+
+
+try:
+    from collections import OrderedDict
+except ImportError:
+    from ordereddict import OrderedDict
+    
+
+key1 = u"in the root namespace"
+key2 = u"in the root namespace -- too"
+
+tree1 = OrderedDict([
+    (u'key3',  0x20),
+    
+    (u'tree2', OrderedDict([
+        (u'key4', u"get this as `tree1.tree2.key4'"),
+        (u'key5', True),
+        (u'key6', u"off"),
+        (u'key7', []),
+        (u'key8', [
+            u"val1",
+            u"val2",
+            u"{{key1}}"
+        ]),
+        (u'key9', OrderedDict()),
+        (u'key10', u"1{{key1}}2{{key2}}{{key1}}3{{tree1.tree2.key4}}"),        
+    ]))])