akellehe
4/25/2017 - 11:23 PM

Problems to look for memory leaks in

Problems to look for memory leaks in

import threading
import time
import requests
from guppy import hpy


def show_heap():
    hp = hpy()
    print hp.heap()

def make_request():
    resp = requests.get('http://rig.dev:33009/long_running')

for i in range(1000):
    t = threading.Thread(target=make_request)
    t.start()

show_heap()
import gc
from guppy import hpy


class Node(object):

    def __init__(self, name):
        self.name = name
        self.children = []

    def __del__(self):
        pass


def cycles():
    NUM_NODES = 1000
    nodelist = [Node(i) for i in range(NUM_NODES)]
    for i in range(NUM_NODES):
        for j in range(NUM_NODES):
            nodelist[i].children.append(nodelist[j])

    hp = hpy()
    print(hp.heap())

    del nodelist

    hp = hpy()
    print(hp.heap())


def nocycles():
    NUM_NODES = 1000
    nodelist = [Node(i) for i in range(NUM_NODES)]
    for i in range(NUM_NODES):
        for j in range(i+1, NUM_NODES):
            nodelist[i].children.append(nodelist[j])

    hp = hpy()
    print(hp.heap())

    del nodelist

    hp = hpy()
    print(hp.heap())


if __name__ == '__main__':
    nocycles()