โครงการนี้พยายามวัดค่าใช้จ่ายขั้นต่ำ (ค่าใช้จ่ายขั้นต่ำ bootstrap) ของกรอบ PHP ในโลกแห่งความเป็นจริง
ดังนั้นฉันคิดว่าแอปพลิเคชันขั้นต่ำสำหรับเกณฑ์มาตรฐานไม่ควรรวม:
ส่วนประกอบเช่น Template Engine หรือ ORM/Database Libraries อยู่นอกขอบเขตในโครงการนี้
นี่คือสาขา master
--optimize-autoloaderบางคนอาจคิดว่าการใช้การกำหนดค่าเริ่มต้นไม่ยุติธรรม แต่ฉันคิดว่าการกำหนดค่าเริ่มต้นของเฟรมเวิร์กเป็นการยืนยันว่ามันคืออะไร การกำหนดค่าเริ่มต้นเป็นจุดเริ่มต้นที่ดีในการทราบกรอบการทำงาน และฉันไม่สามารถเพิ่มประสิทธิภาพทั้งหมดได้ เฟรมเวิร์กบางอย่างได้รับการปรับให้เหมาะสมบางส่วนไม่ได้ไม่ยุติธรรม ดังนั้นฉันจะไม่ลบส่วนประกอบ/การกำหนดค่าใด ๆ
แต่ถ้าคุณมีความสนใจในการเปรียบเทียบกับการเพิ่มประสิทธิภาพ (ลบส่วนประกอบ/การกำหนดค่าที่ไม่ได้ใช้) ดูที่การเพิ่มประสิทธิภาพสาขา
หากคุณพบสิ่งผิดปกติกับรหัสของฉันโปรดส่งคำขอดึง แต่โปรดทราบว่าการเพิ่มประสิทธิภาพเฉพาะสำหรับ "Hello World" นั้นไม่เป็นที่ยอมรับ การสร้างแอปพลิเคชั่น "Hello World" ที่เร็วที่สุดไม่ใช่เป้าหมายในโครงการนี้
นี่คือเกณฑ์มาตรฐานของฉันไม่ใช่ของคุณ ฉันขอแนะนำให้คุณทำงานในสภาพแวดล้อม (การผลิตเทียบเท่า) ของคุณ
(2017/02/14)

| กรอบ | คำขอต่อวินาที | ญาติ | หน่วยความจำสูงสุด | ญาติ |
|---|---|---|---|---|
| Siler-0.6 | 2,069.69 | 20.3 | 0.25 | 1.0 |
| Kumbia-1.0-dev | 1,753.60 | 17.2 | 0.29 | 1.2 |
| StaticPHP-0.9 | 1,665.28 | 16.3 | 0.27 | 1.1 |
| Phalcon-2.0 | 1,618.39 | 15.9 | 0.26 | 1.1 |
| Tipsy-0.10 | 1,376.97 | 13.5 | 0.32 | 1.3 |
| fatfree-3.5 | 965.16 | 9.5 | 0.41 | 1.7 |
| Ci-3.0 | 753.09 | 7.4 | 0.42 | 1.7 |
| nofuss -1.2 | 667.24 | 6.5 | 0.40 | 1.6 |
| Slim-3.0 | 550.43 | 5.4 | 0.61 | 2.5 |
| หมี -1.0 | 502.52 | 4.9 | 0.73 | 3.0 |
| Lumen-5.1 | 415.57 | 4.1 | 0.85 | 3.5 |
| yii-2.0 | 410.08 | 4.0 | 1.32 | 5.4 |
| ze-1.0 | 403.34 | 4.0 | 0.75 | 3.1 |
| cygnite-1.3 | 369.12 | 3.6 | 0.71 | 2.9 |
| เชื้อเพลิง -1.8 | 344.26 | 3.4 | 0.63 | 2.6 |
| Silex-2.0 | 342.81 | 3.4 | 0.78 | 3.2 |
| phpixie-3.2 | 267.24 | 2.6 | 1.25 | 5.1 |
| ออร่า -2.0 | 233.54 | 2.3 | 0.88 | 3.6 |
| เค้ก -3.2 | 174.91 | 1.7 | 1.95 | 7.9 |
| ZF-3.0 | 133.87 | 1.3 | 2.24 | 9.1 |
| symfony-3.0 | 131.50 | 1.3 | 2.18 | 8.9 |
| Laravel-5.3 | 101.94 | 1.0 | 2.83 | 11.5 |
หมายเหตุ (1): ผลลัพธ์ทั้งหมดทำงานบน PHP ด้วย phalcon.so และ ice.so หากคุณไม่โหลด phalcon.so หรือ ice.so RPS ยกเว้น Phalcon หรือ ICE อาจเพิ่มขึ้นเล็กน้อย
หมายเหตุ (2): มาตรฐานนี้ถูก จำกัด ด้วยประสิทธิภาพ ab ดู #62.
หากคุณต้องการเปรียบเทียบกรอบการขยาย PHP เช่น Phalcon คุณต้องติดตั้งส่วนขยาย
ติดตั้งซอร์สโค้ดเป็น http: // localhost/php-framework-benchmark/:
$ git clone https://github.com/kenjis/php-framework-benchmark.git
$ cd php-framework-benchmark
$ bash setup.sh
เรียกใช้เกณฑ์มาตรฐาน:
$ bash benchmark.sh
ดู http: // localhost/php-framework-benchmark/
หากคุณต้องการเปรียบเทียบเฟรมเวิร์ก:
$ bash setup.sh fatfree-3.5/ slim-3.0/ lumen-5.1/ silex-1.3/
$ bash benchmark.sh fatfree-3.5/ slim-3.0/ lumen-5.1/ silex-1.3/
ฉันเพิ่มด้านล่างใน /etc/sysctl.conf
# Added
net.netfilter.nf_conntrack_max = 100000
net.nf_conntrack_max = 100000
net.ipv4.tcp_max_tw_buckets = 180000
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_fin_timeout = 10
และเรียกใช้ sudo sysctl -p
หากคุณต้องการดูการกำหนดค่าปัจจุบันให้เรียกใช้ sudo sysctl -a
<VirtualHost *:80>
DocumentRoot /home/vagrant/public
</VirtualHost>