Ejemplo n.º 1
0
def CalcMemoryUsage(what, iterations = 1):
    if session and session.role & (service.ROLE_PROGRAMMER | service.ROLE_SERVICE) == 0:
        raise RuntimeError('Requires role programmer')
    iterations = max(1, iterations)
    iterations = min(iterations, 10)
    enabled = gc.isenabled()
    if enabled:
        gc.disable()
    oldWhitelist = blue.marshal.globalsWhitelist.copy()
    blue.marshal.globalsWhitelist.clear()
    oldCollectWhitelist = blue.marshal.collectWhitelist
    blue.marshal.collectWhitelist = True
    try:
        zippedSum = pickleSum = changeSum = 0
        for i in xrange(iterations):
            pickle = blue.marshal.Save(what)
            zipped = zlib.compress(pickle)
            before = sys.getpymalloced()
            unpickled = blue.marshal.Load(pickle)
            after = sys.getpymalloced()
            pickleSum += len(pickle)
            zippedSum += len(zipped)
            changeSum += after - before

        denominator = float(iterations)
        return (pickleSum / denominator, zippedSum / denominator, changeSum / denominator)
    finally:
        if enabled:
            gc.enable()
        blue.marshal.globalsWhitelist.clear()
        blue.marshal.globalsWhitelist.update(oldWhitelist)
        blue.marshal.collectWhitelist = oldCollectWhitelist
Ejemplo n.º 2
0
def CalcMemoryUsage(what, iterations = 1):
    if session and session.role & (service.ROLE_PROGRAMMER | service.ROLE_SERVICE) == 0:
        raise RuntimeError('Requires role programmer')
    iterations = max(1, iterations)
    iterations = min(iterations, 10)
    enabled = gc.isenabled()
    if enabled:
        gc.disable()
    oldWhitelist = blue.marshal.globalsWhitelist.copy()
    blue.marshal.globalsWhitelist.clear()
    oldCollectWhitelist = blue.marshal.collectWhitelist
    blue.marshal.collectWhitelist = True
    try:
        zippedSum = pickleSum = changeSum = 0
        for i in xrange(iterations):
            pickle = blue.marshal.Save(what)
            zipped = zlib.compress(pickle)
            before = sys.getpymalloced()
            unpickled = blue.marshal.Load(pickle)
            after = sys.getpymalloced()
            pickleSum += len(pickle)
            zippedSum += len(zipped)
            changeSum += after - before

        denominator = float(iterations)
        return (pickleSum / denominator, zippedSum / denominator, changeSum / denominator)
    finally:
        if enabled:
            gc.enable()
        blue.marshal.globalsWhitelist.clear()
        blue.marshal.globalsWhitelist.update(oldWhitelist)
        blue.marshal.collectWhitelist = oldCollectWhitelist
Ejemplo n.º 3
0
def DumpMemoryStatus(out):
    m = blue.win32.GlobalMemoryStatus()
    print >> out, 'GlobalMemoryStatus:'
    for k, v in m.items():
        print >> out, '%s : %r' % (k, v)

    print >> out, 'ProcessMemoryInfo:'
    m = blue.win32.GetProcessMemoryInfo()
    for k, v in m.items():
        print >> out, '%s : %r' % (k, v)

    print >> out, 'Python memory usage: %r' % sys.getpymalloced()
    try:
        print >> out, 'blue WriteStreams: %s, mem use: %s' % (blue.marshal.GetNWriteStreams(), blue.marshal.GetWriteStreamMem())
    except:
        pass

    print >> out, 'end of memory status'
    out.flush()
Ejemplo n.º 4
0
def DumpMemoryStatus(out):
    m = blue.win32.GlobalMemoryStatus()
    print >> out, 'GlobalMemoryStatus:'
    for k, v in m.items():
        print >> out, '%s : %r' % (k, v)

    print >> out, 'ProcessMemoryInfo:'
    m = blue.win32.GetProcessMemoryInfo()
    for k, v in m.items():
        print >> out, '%s : %r' % (k, v)

    print >> out, 'Python memory usage: %r' % sys.getpymalloced()
    try:
        print >> out, 'blue WriteStreams: %s, mem use: %s' % (
            blue.marshal.GetNWriteStreams(), blue.marshal.GetWriteStreamMem())
    except:
        pass

    print >> out, 'end of memory status'
    out.flush()