Displaying articles with tag profile

Ruby profile

Posted by PunNeng, Thu Jul 27 12:38:00 UTC 2006

AMp เขียนครับ

ใน ruby มีออปชันให้เราสามารถดู profile ของโปรแกรม .rb ของเราได้ว่า มี call อะไรเกิดขึ้นบ้าง แต่ละ call กินเวลาเท่าไหร่ ซึ่งเหมาะมาก สำหรับผู้ที่ต้องการเช็ค performance ของโปรแกรมที่เราเขียนขึ้น

ruby -r profile myprogram.rb

พิมพ์แบบนี้ ใส่ชื่อไฟล์และพาธของโปรแกรมเราให้ถูก แล้วรันโลด

แต่ถ้าใครขี้เกียจพิมพ์ SciTE ช่วยคุณไ้ด้ (SciTE มันอ่านว่าไรอะ ผมอ่านว่า ไซ-ตี้) ให้เปิด .rb ของเราด้วย SciTE แล้วไปที่เมนู Tools > Code Profiler ก็จะมีผลเหมือนกับเราพิมพ์คำสั่งเมื่อกี้นั่นแหละ

สมมุติว่า ผมสั่งวนลูปละกัน

10000.times do
    print 1
end

เสร็จแล้ว ดู profiler ก็จะเห็นประมาณนี้ view profiler

คอลัมน์แรก จะเป็น % ของเวลาที่ใช้ cumulative เป็นเวลาสะสม self seconds เป็นเวลา ที่ใช้ไปในการ call ครั้งนั้นๆ calls เป็นจำนวนครั้งในการเรียก self ms/call เป็นระยะเวลาในการเีรียก 1 ครั้ง หน่วยเป็น milli-second (จะละเอียดกว่า) total ms/call น่าจะเป็นเวลาเรียกที่ใช้จริงในการ call อาจจะรวมเรื่อง overhead ต่างๆ ด้วย (อันนี้ไม่แน่ใจเหมือนกันครับ) name ก็ชื่อที่เรียก

ก็ สะดวกดีครับ ไม่ต้องมานั่งจับเวลาเอง ซึ่งก็คงไม่ละเอียดเท่า ruby จับให้

1 comment | Filed Under: Ruby | Tags: profile

codegent: we're hiring