%lprun kullanma: darboğazları yakala
Bir fonksiyonu profillemek, fonksiyonun kaynak koduna daha derinlemesine bakmanı ve olası darboğazları yakalamanı sağlar. Belirli kod satırlarının fonksiyonun çalışma süresinin büyük kısmını aldığını görürsen, farklı ve daha verimli bir teknik kullanmayı düşünebilirsin.
Hadi convert_units() fonksiyonuna daha yakından bakalım.
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 paketini IPython oturumuna yükle. Ardından, %lprun kullanarak convert_units() fonksiyonunu süper kahraman verilerin üzerinde profile. %lprun ile çalışırken özel söz dizimini kullanmayı unutma (profile etmek istediğin fonksiyonu belirtmek için -f bayrağını vermen gerekecek).
convert_units() fonksiyonu, heroes listesi, hts dizisi ve wts dizisi oturumuna yüklendi. Kodlamayı bitirdikten sonra şu soruyu yanıtla:
convert_units() fonksiyonunda toplam harcanan süreye göre, new_hts liste üreteci kod satırında zamanın yüzde kaçı harcanıyor?
Bu egzersiz
Verimli Python Kodu Yazmak
kursunun bir parçasıdırUygulamalı interaktif egzersiz
İnteraktif egzersizlerimizden biriyle teoriyi pratiğe dökün
Egzersizi başlat