Programar não é apenas realizar uma tarefa e obter uma saída que pretendíamos obter. É também sobre a rapidez com que um programa é executado e executado para que o resultado desejado seja alcançado. Com a maioria das linguagens de programação, não é fácil comparar o quão rápido o programa foi executado e nunca é fácil cronometrar uma parte específica do código para entender qual parte do nosso código está levando mais tempo para ser executada. Este é o problema que é resolvido pelo Python timeit módulo.
Módulo Python timeit
Pitão timeit módulo nos permite cronometrar o tempo de execução de um trecho de código sem levar em consideração os processos em segundo plano que são executados para tornar um código executável. Se você precisar de medições um pouco precisas do desempenho do seu código timeit é o módulo para ir para.
exemplo simples timeit
Começaremos usando o módulo timeit diretamente do prompt de comando. O módulo timeit pode ser usado diretamente da CLI, onde podemos inserir uma instrução de loop simples e cronometrá-la usando o comando mostrado:
$ python --version$ python -m timeit '"&".join (str (n) para n no intervalo (1000)) '
$ python -m timeit '"&".join ([str (n) para n no intervalo (1000)]) '
$ python -m timeit '"&".join (map (str, range (1000))) '
Aqui está o que recebemos de volta com este comando:
Tempo de execução da CLI usando timeit
Em uma das seções posteriores, aprenderemos como podemos gerenciar o número de loops realizados para encontrar o número ideal para a execução de uma dada expressão.
Cronometrando um pedaço de código
Se você tiver um script python básico para o qual deseja medir o tempo, o módulo timeit é o caminho a percorrer:
tempo de importação# código de configuração é executado apenas uma vez
setup_code = "do sqrt de importação de matemática"
# snippet de código principal para verificação de desempenho
code_to_measure = "'
def example ():
minha lista = []
para x no intervalo (100):
minha lista.anexar (sqrt (x))
'"
declaração # timeit
imprimir (timeit.timeit (setup = setup_code,
stmt = code_to_measure,
número = 10.000))
Vamos ver a saída deste comando:
Cronometrando um loop
Neste código, também vimos como podemos controlar o número de repetições que o módulo timeit irá realizar para encontrar o melhor tempo de execução para o programa.
Medir o tempo para código multilinha da CLI
Também podemos medir o tempo para o código que se estende por várias linhas na CLI do Python. Vejamos um programa de amostra para ver isso:
$ python -m timeit -s \> "linuxhint = " \
> "para n no intervalo (1000):" \
> "linuxhint [str (n)] = n"
Aqui está o que recebemos de volta com este comando:
Código multi-linha de cronometragem na CLI
Geralmente comparando dois blocos de código
Se você não deseja se preocupar com o uso da CLI e apenas deseja comparar dois programas Python para saber qual deles executa mais rápido, há uma maneira bem simples de fazer isso:
tempo de importaçãostart = timeit.default_timer ()
funcOne ()
imprimir (timeit.default_timer () - start)
start = timeit.default_timer ()
funcTwo ()
imprimir (timeit.default_timer () - start)
Usando a função default_timer (), começamos os tempos novamente e novamente para encontrar uma diferença para o mesmo quando foi iniciado pela última vez. Isso só pode ser usado quando você tem um bom estilo modular de escrita de código para que cada pieve de código possa ser medido separadamente.
Conclusão
Nesta lição, estudamos como podemos cronometrar nosso código em Python e ver sua complexidade e eficiência de tempo e trabalhar nisso se o código for muito lento.