ComeçarComece gratuitamente

Usando %lprun: identificar gargalos

A criação de perfil de uma função permite que você se aprofunde no código-fonte da função e identifique possíveis gargalos. Quando você vê determinadas linhas de código ocupando a maior parte do tempo de execução da função, isso é uma indicação de que você pode querer implementar uma técnica diferente e mais eficiente.

Vamos nos aprofundar na função convert_units().

def convert_units(heroes, heights, weights):


    new_hts = [ht * 0.39370  for ht in heights]

    new_wts = [wt * 2.20462  for wt in weights]


    hero_data = {}


    for i,hero in enumerate(heroes):

        hero_data[hero] = (new_hts[i], new_wts[i])



    return hero_data

Carregue o pacote line_profiler em sua sessão do IPython. Em seguida, use o site %lprun para traçar o perfil da função convert_units() que atua nos dados de seus super-heróis. Lembre-se de usar a sintaxe especial para trabalhar com %lprun (você terá que fornecer um sinalizador -f especificando a função que deseja criar um perfil).

A função convert_units(), a lista heroes, a matriz hts e a matriz wts foram carregadas em sua sessão. Depois que você terminar de codificar, responda à seguinte pergunta:

Que porcentagem de tempo você gasta na linha de código de compreensão da lista new_hts em relação à quantidade total de tempo gasto na função convert_units()?

Este exercício faz parte do curso

Como escrever um código Python eficiente

Ver Curso

Exercício interativo prático

Transforme a teoria em ação com um de nossos exercícios interativos

Comece o exercício