1
2@profile
3def my_func():
4    a = [1] * (10 ** 6)
5    b = [2] * (2 * 10 ** 7)
6    del b
7    yield a
8
9
10@profile
11def test_comprehension():
12    # Dict comprehension
13    d_comp = dict((str(k*k), [v] * (1<<17))
14                  for (v, k) in enumerate(range(99, 111)))
15
16    # List comprehension
17    l_comp = [[i] * (i<<9) for i in range(99)]
18    del l_comp
19    del d_comp
20
21    def hh(x=1):
22        # Set comprehension
23        s_comp = set(('Z',) * (k<<13) for k in range(x, 19 + 2*x))
24        return s_comp
25
26    val = [range(1, 4), max(1, 4), 42 + len(hh())]
27    val = hh() | hh(4)
28    val.add(40)
29    l1_comp = [[(1, i)] * (i<<9) for i in range(99)]
30    l2_comp = [[(3, i)] * (i<<9) for i in range(99)]
31
32    return val
33
34
35@profile
36def test_generator():
37    a_gen = ([42] * (1<<20) for __ in '123')
38    huge_lst = list(a_gen)
39
40    b_gen = ([24] * (1<<20) for __ in '123')
41    del b_gen
42    del huge_lst
43
44    return a_gen
45
46
47if __name__ == '__main__':
48    with profile:
49        next(my_func())     # Issue #42
50
51    test_generator()
52    test_comprehension()
53