Benchmark Framework 2016 | Symfony — Laravel — YII — Zend — Cake — Phalcon

Grafik Perbandingan

Assalamu’alaikum Warohmatullah Wabarokatuh,

Perkenalkan, nama saya Muhammad Surya Ihsanuddin. Saya adalah bagian dari keluarga besar PT. Orori Indonesia dan ini adalah tulisan perdana saya di medium ini :-)

Pada tulisan perdana ini, saya ingin membahas tentang benchmark Framework PHP yaitu antara Symfony (dan keluarganya), Laravel (dan keluarganya), YII2, Zend Framework 2, dan Cake 3.

Benchmark pada tulisan ini menggunakan https://github.com/kenjis/php-framework-benchmark sebagai script tester-nya dengan spesifikasi hardware sebagai berikut:

Hardware Spec

Saya menggunakan PHP versi 5.6.17 dengan nginx sebagai web servernya.

Benchmark pertama yang saya tampilkan adalah antara Symfony, Laravel, YII, Zend dan Cake (Phalcon ditambahkan kemudian) dengan hasil sebagai berikut:

Cli Result
Graphic Result

Dari hasil tersebut terlihat bahwa Symfony 3.0 sedikit lebih cepat diatas YII2 dan disusul kemudian oleh Symfony 2.7 dan seterusnya.

Benchmark diatas adalah benchmark “Hello World” pada environment production seperti dijelaskan pada halaman github script tester.

Pada percobaan selanjutnya, saya menambahkan Phalcon 2 dalam list test, sehingga hasilnya menjadi seperti berikut:

Cli Result
Graphic Result

Dari hasil diatas, nampak Phalcon masih paling unggul dalam throughput dan disusul oleh Symfony 3.0, Symfony 2.7 dan kemudian YII2.

Sedikit unik disini, dimana hasilnya sedikit berbeda yaitu Symfony 2.7 berhasil menyalip YII2 pada percobaan kali ini.

Sebagai catatan, hasil diatas sangat tergantung dengan spesifikasi hardware dan software yang digunakan. Hasil mungkin dapat berbeda pada hardware maupun software yang digunakan.

Posting ini pada dasarnya bertujuan membuktikan tentang “mitos” bahwa Symfony Framework adalah Framework yang lemot serta menunjukkan bahwa dengan compare yang “fair” pada lingkungan production, ternyata Symfony adalah framework yang bukan “extension based” tercepat menurut hasil dari Benchmark diatas :-)

Terima kasih telah bersedia membaca tulisan ini.

Wassalamu’alaikum Warohmatullah Wabarokatuh.

NB:

  • Script murni dari github tanpa perubahan apapun.
  • Terdapat error pada script tester sehingga pick memory tidak tercapture.
  • Jangan terpengaruh dengan hasil ini diatas, tetap gunakan framework Anda yang biasanya.
  • Throughput dapat berbeda pada real live application.