March 9, 2012

Python: วัดประสิทธิภาพ code ด้วย timeit

ก่อนที่จะวัดความเร็ว มี 2 ฟังก์ชันที่ควรรู้จักคือ eval และ exec ซึ่งจะทำการรับ code ที่เก็บเป็น string มารัน

ความแตกต่างคือ eval จะสามารถใช้ได้กับ expression เท่านั้น ไม่สามารถใช้กับ statement ได้ (คือไม่สามารถกำหนดค่าให้กับตัวแปรได้นั่นเอง)



การวัดความเร็วสามารถทำได้โดยฟังก์ชัน timeit จากโมดูล timeit โดยส่งผ่าน code เข้าไปเช่นนี้

ตัวเลือกหนึ่งที่น่าสนใจคือ number ซึ่งหมายถึงรอบที่ใช้ทดลองเพื่อหาเวลารวม (ค่าปริยายคือหนึ่งล้าน) ถ้ารู้สึกว่าใช้เวลาทดลองนานเกินไปก็ลดรอบได้

ส่วนการจะทดสอบ function ที่เขียนไว้ล่วงหน้าแล้ว ก็ทำได้ผ่านการ setup เช่นนี้



หรือถ้าหากต้องการทดสอบจาก shell ก็สามารถสั่งแบบนี้ได้

สังเกตว่ารูปแบบการพิมพ์ผลลัพท์ที่ได้จะต่างออกไปเล็กน้อยนะครับ

No comments:

Post a Comment