Pitão

Módulo Python timeit

Módulo Python timeit

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ção
start = 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.

Como desenvolver um jogo no Linux
Uma década atrás, poucos usuários de Linux preveriam que seu sistema operacional favorito um dia seria uma plataforma de jogos popular para videogames...
Portas de código aberto para motores de jogos comerciais
Recriações gratuitas, de código aberto e de mecanismo de jogo de plataforma cruzada podem ser usadas para jogar jogos antigos, bem como alguns dos tít...
Melhores jogos de linha de comando para Linux
A linha de comando não é apenas sua maior aliada ao usar o Linux - ela também pode ser uma fonte de entretenimento porque você pode usá-la para jogar ...