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