เปรียบเทียบความเร็ว PHP Framework

จุดประสงค์ของการเปรียบเทียบ เพื่อให้เห็นว่า เราสามารถพัฒนาเฟรมเวิร์ค ที่มีคุณสมบัติไม่ด้อยไปกว่าเฟรมเวิร์คชื่อดังในท้องตลาดได้ การเลือกเฟรมเวิร์คที่นำมาใช้เปรียบเทียบผมเลือกเอาเฉพาะที่เป็นที่นิยม และมีคุณสมบัติเด่นๆเท่านั้น หากมีข้อสงสัยใดๆในการทดสอบ ผมแนะนำให้ดำเนินการทดสอบซ้ำด้วยตัวเอง เนื่องจากโค้ดที่ใช้ในการทดสอบทั้งหมด ผมได้อัปโหลดไว้บน Github อยู่แล้ว

Loading Performance

เป็นผลการทดสอบการโหลดของ Framework โดยในการทดสอบนี้เป็นการทดสอบการเริ่มต้นของ PHP Framework ต่างๆ แบบ "น้อยที่สุด" โดยให้ผลลัพท์เป็น "Hello World!" เท่านั้น ไม่มีการโหลด HTML CSS และ Javascript แต่อย่างใด

Database Performance

ผลการทดสอบการใช้งานฐานข้อมูลด้วย ORM โดยการทดสอบนี้มีการทดสอบเฉพาะเฟรมเวิร์คที่มี ORM เท่านั้น
  • Cake PHP 3.0 ใช้ Entity
  • Yii 2.0 ใช้ ActiveRecord
  • Laravel 4.2 และ 5.1 ใช้ Eloquent
  • คชสาร ใช้ Recordset
ผลการทดสอบแรก เป็นการเรียกดูข้อมูล (SELECT) และมีการบันทึกข้อมูล (UPDATE) ร่วมด้วย
ผลการทดสอบที่สอง เป็นการทดสอบการเรียกดูข้อมูล (SELECT) เพียงอย่างเดียว
สุดท้าย เป็นการทดสอบเปรียบเทียบการใช้งานระหว่าง Recordset, Query Builder และ CRUD ของคชสาร

ผลการทดสอบรูปแบบกราฟ http://benchmark.kotchasan.com

0SHAREFacebookLINE it!
หมายเหตุ
  • request per second หมายถึง จำนวนการโหลดหน้าเว็บใน 1 วินาที ค่านี้ยิ่งสูงยิ่งดี (สามารถรองรับจำนวนผู้เยี่ยมชมพร้อมๆกันได้มากขึ้น)
  • peak memory หมายถึงอัตราการใช้งานหน่วยความจำ ยิ่งมีการใช้หน่วยความจำน้อยเท่าไรยิ่งดี
  • exec time หมายถึง เวลาในการประมวลผลหน้าเพจ ยิ่งใช้เวลาน้อย ยิ่งดี
  • Included Files หมายถึงจำนวนไฟล์ที่มีการรวมเข้ามาในระบบขณะทำงาน ยิ่งน้อยก็ยิ่งมีแนวโน้มจะมีประสิทธิภาพสูงขึ้น
โค้ดที่ใช้ในการทดสอบ
  • โปรเจ็ค projects/benchmark/ โค้ดของคชสารที่ใช้ในการทดสอบ
  • โปรเจ็ค php-framework-benchmark สำหรับโปรแกรมทดสอบ (มีการดัดแปลงจากต้นฉบับเล็กน้อย และโค้ดของเฟรมเวิร์คอื่นๆอยู่ในโปรเจ็คนี้)
ข้อมูลผลการทดสอบที่ได้จาก apache bench
การทดสอบนี้ ทดสอบบน PHP Version 5.6.24-1+deb.sury.org~xenial+1 และไม่มีการใช้งาน Cache ใดๆทั้งสิ้น
^