# HG changeset patch # User Franz Glasner # Date 1639781591 -3600 # Node ID 36ab39e3de537f65e1bc39d0fc0710cc3f765a68 # Parent 3f0c932588fc70d3c62961c6dc7907a0245e7c90 A script to measure some basic performance characteristics of configmix. BUGS: Not yet finished. diff -r 3f0c932588fc -r 36ab39e3de53 tests/_perf_config.py --- /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)) diff -r 3f0c932588fc -r 36ab39e3de53 tests/data/conf_perf.py --- /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}}"), + ]))])