(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()