![]() |
runctx method of cProfile module. - Printable Version +- Python Forum (https://python-forum.io) +-- Forum: Python Coding (https://python-forum.io/forum-7.html) +--- Forum: Homework (https://python-forum.io/forum-9.html) +--- Thread: runctx method of cProfile module. (/thread-21927.html) |
runctx method of cProfile module. - rahulnatarajan98 - Oct-21-2019 Define two functions f1 and f2 such that, f1 returns a list of squares of first 200000 natural numbers using list comprehension. f2 returns a generator that computes squares of first 200000 natural numbers. Perform profiling of both the functions and which portions of a function consume more time for computing. Hint : Make use of runctx method of cProfile module. RE: runctx method of cProfile module. - buran - Oct-21-2019 Welcome to the forum. We are glad to help, but we are not here to do your homework for you. Please, post your code in python tags. Full traceback, if any - in error tags. Ask specific questions. Just posting your assignment will not do. RE: runctx method of cProfile module. - sachinladhad - Oct-22-2019 (Oct-21-2019, 10:53 AM)rahulnatarajan98 Wrote: Define two functions f1 and f2 such that, f1 returns a list of squares of first 200000 natural numbers using list comprehension. f2 returns a generator that computes squares of first 200000 natural numbers. Perform profiling of both the functions and which portions of a function consume more time for computing. Hint : Make use of runctx method of cProfile module. Below is the code but it is not working properly (incorrect result) Anyone can help me import pstats, cProfile def f1(n1): f= [i**2 for i in range(1,n1)] return f def f2(n2): g = (x**2 for x in range(1,n2)) return g cProfile.runctx("f1(n1)", globals(), {'n1':200001}, "Profile1.prof") cProfile.runctx("f2(n2)", globals(), {'n2':200001}, "Profile2.prof") s1 = pstats.Stats("Profile1.prof") s1.strip_dirs().sort_stats("time").print_stats() s2 = pstats.Stats("Profile2.prof") s2.strip_dirs().sort_stats("time").print_stats() RE: runctx method of cProfile module. - buran - Oct-22-2019 why do you think the result is incorrect? RE: runctx method of cProfile module. - FaizKarim - Oct-23-2019 import cProfile def f1(): f = [i**2 for i in range(1,200001)] return f def f2(): g = (j**2 for j in range(1,200001)) yield g cProfile.runctx('f1()',globals(),locals()) cProfile.runctx('f2()',globals(),locals()) '''here's ur solution''' RE: runctx method of cProfile module. - buran - Oct-23-2019 @FazimKarim, OP assignment requires f2 to return generator, not yield generator |