1. Apprendre
  2. /
  3. Cours
  4. /
  5. Rédiger du code Python efficace

Connected

Exercice

Utiliser %lprun : repérer les goulots d'étranglement

L'analyse de performance d'une fonction vous permet d'examiner plus en profondeur son code source et de repérer des goulots d'étranglement potentiels. Si vous voyez que certaines lignes de code accaparent la majeure partie du temps d'exécution de la fonction, cela indique que vous devriez envisager une technique différente, plus efficace.

Examinons de plus près la fonction 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

Chargez le paquet line_profiler dans votre session IPython. Ensuite, utilisez %lprun pour profiler la fonction convert_units() appliquée à vos données de superhéros. N'oubliez pas la syntaxe particulière de %lprun (vous devez fournir l'option -f pour préciser la fonction à profiler).

La fonction convert_units(), la liste heroes, ainsi que les tableaux hts et wts ont été chargés dans votre session. Après avoir terminé le code, répondez à la question suivante :

Quel pourcentage du temps est consacré à la ligne de compréhension de liste new_hts, par rapport au temps total passé dans la fonction convert_units() ?

Instructions

50 XP

Réponses possibles