Utilisation de %lprun : détection des points de blocage
Le profilage d'une fonction vous permet d'examiner en détail le code source de la fonction et éventuellement de détecter des points de blocage. Lorsque vous constatez que certaines lignes de code occupent la majeure partie du temps d'exécution de la fonction, cela indique qu'il pourrait être opportun de déployer une technique différente et 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
Veuillez charger le package line_profiler dans votre session IPython. Ensuite, utilisez %lprun pour profiler la fonction convert_units() agissant sur les données relatives à vos super-héros. Rappelez-vous d'utiliser la syntaxe spéciale pour travailler avec %lprun (vous devrez fournir un indicateur -f spécifiant la fonction que vous souhaitez profiler).
La fonction convert_units(), la liste heroes, le tableau hts et le tableau wts ont été chargés dans votre session. Une fois le codage terminé, veuillez répondre à la question suivante :
Quel pourcentage du temps est consacré à la ligne de code de compréhension de liste new_hts par rapport au temps total passé dans la fonction convert_units() ?
Cet exercice fait partie du cours
Écrire du code Python efficace
Exercice interactif pratique
Passez de la théorie à la pratique avec l’un de nos exercices interactifs
Commencer l’exercice