[Dev] มาเปรียบเทียบคำสั่ง If-Else กับ Select-Case บน VB.NET กันดีกว่า

ความเดิมตอนที่แล้ว ผมได้ทำการ Benchmark คำสั่ง If ในรูปแบบต่าง ๆ ไปแล้ว คราวนี้ก็ถึงคราวของ If-Else เทียบกับ Select-Case กันบ้าง…

Visual-Basic-logo_Benchmark-If-vs-Select

คิดว่า If-Else หรือ Select-Case นั้น แบบไหนทำงานได้เร็วกว่ากัน ลองตอบคำถามนี้ไว้ในใจก่อนละกันนะครับ

สมมติเงื่อนไขง่าย ๆ เป็นโปรแกรมตัดเกรดละกัน ดังตารางนี้

คะแนน เกรด
80+ A
70-79 B
60-69 C
50-59 D
49- F

คงไม่มีใครไม่เคยเขียนโปรแกรมแบบนี้เน๊อะ~!!

 

If-Else

มาเขียนแบบ If-Else กันก่อน

 

Select-Case

แล้วมาเขียนแบบใช้ Select-Case กันบ้าง

 

Benchmark

ถึงเวลาวัดผลกันแล้วล่ะ โดยจะใช้ Loop ครอบคำสั่งแบบเดียวกับบทความที่แล้ว…

และเช่นเดิม ทดสอบด้วย Input ทั้งหมด 100,000,000 ตัว ทั้งหมด 10 รอบ บน Windows XP 32 bit กับ Windows 8.1 64 bit ได้ผลออกมาเป็นดังนี้

ผลการ Benchmark If-Else เทียบกับ Select-Case บน Windows XP 32 bit
ผลการ Benchmark If-Else เทียบกับ Select-Case บน Windows XP 32 bit
ผลการ Benchmark If-Else เทียบกับ Select-Case บน Windows 8.1 64 bit
ผลการ Benchmark If-Else เทียบกับ Select-Case บน Windows 8.1 64 bit

จะเห็นว่า If-Else ใช้เวลาน้อยกว่า Select-Case เล็กน้อย ต่างกันอยู่ที่ประมาณ 0.1 – 0.2 ms เท่านั้นเอง

จึงสรุปผลการ Benchmark ได้ว่า…

การใช้ If-Else หรือ Select-Case ให้ผลการทำงานแทบไม่ต่างกัน

 

ใครสนใจอยากดู Code เต็ม ๆ ไปดูได้ที่ GitHub นะครับ และสามารถ Download If vs Select.exe ไปรันดูได้ครับ (Require .NET Framework 3.5) แล้วอย่าลืมรายงานผลบ้างนะ…

ขอตัวไปเขียน Benchmark Java บน Android บ้าง ทำค้างไว้หลายวันละ

Leave a Reply

Your email address will not be published. Required fields are marked *