เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

การใช้ %lprun: ค้นหาจุดคอขวด

การ profile ฟังก์ชันช่วยให้เจาะลึกลงไปในโค้ดของฟังก์ชันนั้น และอาจค้นพบจุดคอขวดได้ เมื่อเห็นว่าบรรทัดใดบรรทัดหนึ่งใช้เวลาส่วนใหญ่ของฟังก์ชัน นั่นเป็นสัญญาณว่าควรลองใช้เทคนิคที่มีประสิทธิภาพมากกว่านี้

มาเจาะลึกฟังก์ชัน 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 session จากนั้นใช้ %lprun เพื่อ profile ฟังก์ชัน convert_units() กับข้อมูลซูเปอร์ฮีโร่ของคุณ อย่าลืมใช้ syntax พิเศษสำหรับ %lprun (ต้องระบุ flag -f เพื่อบอกว่าต้องการ profile ฟังก์ชันใด)

ฟังก์ชัน convert_units(), รายการ heroes, อาร์เรย์ hts และ wts ถูกโหลดเข้า session แล้ว หลังจากเขียนโค้ดเสร็จ ให้ตอบคำถามต่อไปนี้:

บรรทัด list comprehension ของ new_hts ใช้เวลาคิดเป็นกี่เปอร์เซ็นต์เมื่อเทียบกับเวลาทั้งหมดที่ใช้ในฟังก์ชัน convert_units()?

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

การเขียน Python Code ที่มีประสิทธิภาพ

ดูคอร์ส

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำจริง

เปลี่ยนทฤษฎีให้เป็นการลงมือทำด้วยแบบฝึกหัดเชิงโต้ตอบหนึ่งในของเรา

เริ่มแบบฝึกหัด