def test_profiler(): profiler = TracingProfiler(top_frames=[sys._getframe()]) assert isinstance(profiler.stats, RecordingStatistics) stats, cpu_time, wall_time = profiler.result() assert len(stats) == 0 with profiler: factorial(1000) factorial(10000) stats1 = find_stats(profiler.stats, 'factorial') stats2 = find_stats(profiler.stats, '__enter__') stats3 = find_stats(profiler.stats, '__exit__') assert stats1.deep_time != 0 assert stats1.deep_time == stats1.own_time assert stats1.own_time > stats2.own_time assert stats1.own_time > stats3.own_time assert stats1.own_hits == 2 assert stats2.own_hits == 0 # entering to __enter__() wasn't profiled. assert stats3.own_hits == 1
def heavy(): factorial(10000)
def light(): factorial(10) sleep(0.1) factorial(10)