예제 #1
0
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
예제 #2
0
 def heavy():
     factorial(10000)
예제 #3
0
 def heavy():
     factorial(10000)
예제 #4
0
 def light():
     factorial(10)
     sleep(0.1)
     factorial(10)
예제 #5
0
 def light():
     factorial(10)
     sleep(0.1)
     factorial(10)