Sophie

Sophie

distrib > Mageia > 4 > x86_64 > by-pkgid > 74a079f60081eb768b37d9cbd7adb753 > files > 56

buildbot-doc-0.8.8-3.mga4.noarch.rpm

.. _Optimization:

Optimization
============

If you're feeling your Buildbot is running a bit slow, here are some tricks that may help you,
but use them at your own risk.

Properties load speedup
-----------------------

For example, if most of your build properties are strings, you can gain an approx. 30% speedup
if you put this snippet of code inside your master.cfg file::

    def speedup_json_loads():
        import json, re

        original_decode = json._default_decoder.decode
        my_regexp = re.compile(r'^\[\"([^"]*)\",\s+\"([^"]*)\"\]$')
        def decode_with_re(str, *args, **kw):
            m = my_regexp.match(str)
            try:
                return list(m.groups())
            except:
                return original_decode(str, *args, **kw)
        json._default_decoder.decode = decode_with_re

    speedup_json_loads()

It patches json decoder so that it would first try to extract a value from JSON that is a list
of two strings (which is the case for a property being a string), and would fallback to general
JSON decoder on any error