開始使用免費開始

使用 %lprun:找出瓶頸

對函式進行效能剖析(profiling)可以更深入檢視其原始碼,並有機會找出效能瓶頸。當你看到某些程式碼行佔去了大多數的執行時間,就代表你可能需要改用不同且更有效率的方法。

來更深入看看 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 陣列都已載入到你的工作階段。完成程式碼後,請回答下列問題:

convert_units() 函式的總執行時間中,new_hts 這行串列生成大約花了多少百分比的時間?

本練習屬於課程

撰寫高效的 Python 程式碼

檢視課程

動手互動練習

將理論付諸實踐,立即體驗我們的互動練習

開始練習