15.12.2022 Views

Python Eficaz

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

>>>

30003 function calls in 0.028 seconds

Ordered by: cumulative time

ncalls tottime percall cumtime percall filename:lineno(function)

1 0.000 0.000 0.028 0.028 main.py:34(<lambda>)

1 0.002 0.002 0.028 0.028 main.py:10(insertion_sort)

10000 0.005 0.000 0.026 0.000 main.py:112(insert_value)

10000 0.014 0.000 0.014 0.000 {method 'insert' of 'list' objects}

10000 0.007 0.000 0.007 0.000 {built-in method bisect_left}

1 0.000 0.000 0.000 0.000 {method 'disable' of '_lsprof.Profiler' objects}

Muitas vezes, ao traçar o perfil de um programa completo, descobriremos que

uma única função utilitária é responsável pela maioria do tempo de execução. A

saída-padrão do profiler dificulta o entendimento dessa situação porque não

mostra como a função utilitária é chamada pelas diferentes partes do programa.

No exemplo a seguir, a função my_utility é chamada repetidamente por duas

diferentes funções do programa:

def my_utility(a, b):

# ...

def first_func():

for _ in range(1000):

my_utility(4, 5)

def second_func():

for _ in range(10):

my_utility(1, 3)

def my_program():

for _ in range(20):

first_func()

second_func()

Ao traçar o perfil de desempenho desse código usando a saída default de

print_stats, teremos resultados estatísticos bastante confusos.

www.full-ebook.com

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!