1. Learn
  2. /
  3. Курси
  4. /
  5. Ефективне написання коду Python

Connected

вправа

Використання %lprun: знайдіть «вузькі місця»

Профілювання функції дає змогу заглибитися в її вихідний код і виявити потенційні «вузькі місця». Якщо окремі рядки коду забирають більшість часу виконання функції, це сигнал, що варто застосувати інший, ефективніший підхід.

Заглибмося у функцію 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

Завантажте пакет line_profiler у вашу сесію IPython. Потім скористайтеся %lprun, щоб профілювати функцію convert_units() на даних про супергероїв. Пам'ятайте про спеціальний синтаксис роботи з %lprun (потрібно додати прапорець -f, щоб указати функцію для профілювання).

Функцію convert_units(), список heroes, масив hts і масив wts уже завантажено у вашу сесію. Після того як завершите написання коду, дайте відповідь на запитання нижче:

Який відсоток часу припадає на рядок зі списковим включенням new_hts відносно загального часу виконання функції convert_units()?

Інструкції

50 XP

Можливі відповіді