Jadual Kandungan
主流PHP框架性能非权威测试
性能测试
结果说明
开始测试
优化框架
结论
最后
Rumah pembangunan bahagian belakang tutorial php 速看!主流PHP框架性能非权威测试

速看!主流PHP框架性能非权威测试

Jul 29, 2020 pm 01:20 PM
rangka kerja php

主流PHP框架性能非权威测试

作为一个PHP开发者,而且是初创企业团队的技术开发者,选择开发框架是个很艰难的事情。

ThinkPHP的话,招聘一个刚从培训机构出来的开发者就可以上手了,但是性能和后期代码解耦是个让人头疼的事情。不过很多第三方功能不需要自己写,众多大牛已经给铺好路了。

Laravel的话,传说写起来很爽扩展性也够,但是学习成本有点高,总不能给初级开发者半个月的时间去学习框架吧。而且据说江湖人士透漏,Laravel性能不怎么样,文档也并不是特别丰富。

Yii的话,语法有点啰嗦,前后端代码分离有点小麻烦,不过性能是非常好的,而且已经有众多国内大公司在使用了,出现意外可以快速的找到大牛答疑解惑。

不如做个简单的性能评测,选个性能出色的总不会出错

性能测试

  • 测试时间: 2016年05月06日

  • 测试工具: siege (因为MAC系统的ab总是会出现 pr_socket_recv: Connection reset by peer (54) 的错误,所以选择了siege)

  • 测试机器: MacPro Core i5 处理器/8GB内存/256GB SSD闪存

  • 测试环境: Apache PHP5.6

  • 框架版本: ThinkPHP 3.2.3 Laravel 5.2 Yii2.0.5

  • 测试原则: 每次测试循环5次,取中等数据

补充说明:所有项目都是让在子目录中

结果说明

Transactions:                2119 hits  处理请求总数量
Availability:               96.85 %  可用性
Elapsed time:                9.74 secs  运行时间
Data transferred:            1.31 MB 数据传输量
Response time:                0.60 secs 响应时间
Transaction rate:          217.56 trans/sec 每秒处理效率
Throughput:                0.13 MB/sec 每秒处理数据
Concurrency:              130.28 并发
Successful transactions:        2162 成功的请求
Failed transactions:              69 失败的请求
Longest transaction:            2.85 最长的单个请求
Shortest transaction:            0.01 最短的单个请求
Salin selepas log masuk

开始测试

增加一个控制器,并在控制器中输入10000次HelloWorld

并发50循环10次:

首先向我们走来的是ThinkPHP,看上去还行

Transactions:                 500 hits
Availability:              100.00 %
Elapsed time:                2.81 secs
Data transferred:           52.45 MB
Response time:                0.26 secs
Transaction rate:          177.94 trans/sec
Throughput:               18.67 MB/sec
Concurrency:               47.10
Successful transactions:         500
Failed transactions:               0
Longest transaction:            0.48
Shortest transaction:            0.03
Salin selepas log masuk

然后是Laravle,嗯,略微有些失望

Transactions:                 500 hits
Availability:              100.00 %
Elapsed time:               13.33 secs
Data transferred:           52.45 MB
Response time:                1.27 secs
Transaction rate:           37.51 trans/sec
Throughput:                3.93 MB/sec
Concurrency:               47.55
Successful transactions:         500
Failed transactions:               0
Longest transaction:            3.64
Shortest transaction:            0.07
Salin selepas log masuk

最后赛前比较看好的Yii

Transactions:                 500 hits
Availability:              100.00 %
Elapsed time:                4.84 secs
Data transferred:           52.45 MB
Response time:                0.46 secs
Transaction rate:          103.31 trans/sec
Throughput:               10.84 MB/sec
Concurrency:               47.65
Successful transactions:         500
Failed transactions:               0
Longest transaction:            0.88
Shortest transaction:            0.04
Salin selepas log masuk

并发200循环10次:

首先是ThinkPHP

Transactions:                1977 hits
Availability:               98.85 %
Elapsed time:               10.03 secs
Data transferred:          207.40 MB
Response time:                0.95 secs
Transaction rate:          197.11 trans/sec
Throughput:               20.68 MB/sec
Concurrency:              187.68
Successful transactions:        1977
Failed transactions:              23
Longest transaction:            1.22
Shortest transaction:            0.02
Salin selepas log masuk

然后是Laravel

Transactions:                1890 hits
Availability:               94.50 %
Elapsed time:               51.85 secs
Data transferred:          198.27 MB
Response time:                4.88 secs
Transaction rate:           36.45 trans/sec
Throughput:                3.82 MB/sec
Concurrency:              178.00
Successful transactions:        1890
Failed transactions:             110
Longest transaction:           26.01
Shortest transaction:            0.07
Salin selepas log masuk

最后是Yii

Transactions:                1996 hits
Availability:               99.80 %
Elapsed time:               18.95 secs
Data transferred:          209.39 MB
Response time:                1.79 secs
Transaction rate:          105.33 trans/sec
Throughput:               11.05 MB/sec
Concurrency:              188.57
Successful transactions:        1996
Failed transactions:               4
Longest transaction:            3.29
Shortest transaction:            0.10
Salin selepas log masuk

没想到在没有优化的情况下,ThinkPHP的速度是最快的,Yii略微多一些,Laravel步履蹒跚的跑完了测试。结果是有些出人意料的,不过上述的测试只代表了开发环境,下面会对框架进行优化,模拟线上环境。

优化框架

ThinkPHP:

APP_DEBUG改为false
Salin selepas log masuk

Laravel:

APP_DEBUG改为false
php artisan route:cache
php artisan optimize
php artisan config:cache
composer dumpautoload -o
Salin selepas log masuk

Yii:

YII_DEBUG改为false
composer dumpautoload -o
Salin selepas log masuk

并发200循环10次:

ThinkPHP

Transactions:                1655 hits
Availability:               82.75 %
Elapsed time:                8.21 secs
Data transferred:          173.62 MB
Response time:                0.69 secs
Transaction rate:          201.58 trans/sec
Throughput:               21.15 MB/sec
Concurrency:              139.29
Successful transactions:        1655
Failed transactions:             345
Longest transaction:            7.83
Shortest transaction:            0.00
Salin selepas log masuk

Laravel:

Transactions:                1520 hits
Availability:               76.00 %
Elapsed time:               34.95 secs
Data transferred:          159.45 MB
Response time:                3.15 secs
Transaction rate:           43.49 trans/sec
Throughput:                4.56 MB/sec
Concurrency:              136.84
Successful transactions:        1520
Failed transactions:             480
Longest transaction:           19.18
Shortest transaction:            0.00
Salin selepas log masuk

Yii:

Transactions:                1704 hits
Availability:               85.20 %
Elapsed time:               15.16 secs
Data transferred:          178.76 MB
Response time:                1.46 secs
Transaction rate:          112.40 trans/sec
Throughput:               11.79 MB/sec
Concurrency:              164.21
Successful transactions:        1704
Failed transactions:             296
Longest transaction:            9.04
Shortest transaction:            0.00
Salin selepas log masuk

比较奇怪的一点,当框架关掉调试模式后都出现了较多失败的情况。不过明显的看到,Laravel进行简单的优化后,性能大大的提升了,但还是低于其他两个框架。

结论

在测试的过程中,其他我的心情是沮丧的,感觉自己的三观世界已经崩塌了,崩塌至渣。

  • ThinkPHP的性能比Yii高出一倍,比Laravel高出近四倍

  • Yii的性能比较中庸,但是在测试中会明显发现请求失败的情况比其他两个框架要少

  • Laravel依旧优雅,不过性能堪忧,用网友的话形容比较好 学之者生用之者死

最后

我的项目最后使用了自建框架进行开发,得益于composer的强大,开发的过程非常顺利,最后附上自有框架在200并发10次循环的数据,框架开源但是更新比较忙,欢迎在github上搜索PPPHP,和我一起搭建框架。

Transactions:                1672 hits
Availability:               83.60 %
Elapsed time:                6.18 secs
Data transferred:          175.40 MB
Response time:                0.57 secs
Transaction rate:          270.55 trans/sec
Throughput:               28.38 MB/sec
Concurrency:              153.16
Successful transactions:        1672
Failed transactions:             328
Longest transaction:            4.57
Shortest transaction:            0.01
Salin selepas log masuk

Atas ialah kandungan terperinci 速看!主流PHP框架性能非权威测试. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Perbandingan kelebihan dan kekurangan rangka kerja PHP: Mana satu yang lebih baik? Perbandingan kelebihan dan kekurangan rangka kerja PHP: Mana satu yang lebih baik? Jun 04, 2024 pm 03:36 PM

Pilihan rangka kerja PHP bergantung pada keperluan projek dan kemahiran pembangun: Laravel: kaya dengan ciri dan komuniti aktif, tetapi mempunyai keluk pembelajaran yang curam dan overhed prestasi tinggi. CodeIgniter: ringan dan mudah dipanjangkan, tetapi mempunyai fungsi terhad dan kurang dokumentasi. Symfony: Bermodul, komuniti yang kuat, tetapi kompleks, isu prestasi. ZendFramework: Gred perusahaan, stabil dan boleh dipercayai, tetapi besar dan mahal untuk dilesenkan. Langsing: rangka kerja mikro, pantas, tetapi dengan fungsi terhad dan keluk pembelajaran yang curam.

Perbezaan prestasi rangka kerja PHP dalam persekitaran pembangunan yang berbeza Perbezaan prestasi rangka kerja PHP dalam persekitaran pembangunan yang berbeza Jun 05, 2024 pm 08:57 PM

Terdapat perbezaan dalam prestasi rangka kerja PHP dalam persekitaran pembangunan yang berbeza. Persekitaran pembangunan (seperti pelayan Apache tempatan) mengalami prestasi rangka kerja yang lebih rendah disebabkan oleh faktor seperti prestasi pelayan tempatan yang lebih rendah dan alat penyahpepijatan. Sebaliknya, persekitaran pengeluaran (seperti pelayan pengeluaran berfungsi sepenuhnya) dengan pelayan yang lebih berkuasa dan konfigurasi yang dioptimumkan membolehkan rangka kerja berprestasi lebih baik dengan ketara.

Rangka Kerja PHP dan Perkhidmatan Mikro: Penerapan dan Pengkontenaan Asli Awan Rangka Kerja PHP dan Perkhidmatan Mikro: Penerapan dan Pengkontenaan Asli Awan Jun 04, 2024 pm 12:48 PM

Faedah menggabungkan rangka kerja PHP dengan perkhidmatan mikro: Kebolehskalaan: Memanjangkan aplikasi dengan mudah, menambah ciri baharu atau mengendalikan lebih banyak beban. Fleksibiliti: Perkhidmatan mikro digunakan dan diselenggara secara bebas, menjadikannya lebih mudah untuk membuat perubahan dan kemas kini. Ketersediaan tinggi: Kegagalan satu perkhidmatan mikro tidak menjejaskan bahagian lain, memastikan ketersediaan yang lebih tinggi. Kes praktikal: Menggunakan perkhidmatan mikro menggunakan Laravel dan Kubernetes Langkah: Buat projek Laravel. Tentukan pengawal perkhidmatan mikro. Buat fail Docker. Buat manifes Kubernetes. Sebarkan perkhidmatan mikro. Uji perkhidmatan mikro.

Rangka kerja PHP terbaik untuk seni bina perkhidmatan mikro: prestasi dan kecekapan Rangka kerja PHP terbaik untuk seni bina perkhidmatan mikro: prestasi dan kecekapan Jun 03, 2024 pm 08:27 PM

Rangka Kerja Mikroperkhidmatan PHP Terbaik: Symfony: Fleksibiliti, prestasi dan kebolehskalaan, menyediakan set komponen untuk membina perkhidmatan mikro. Laravel: menumpukan pada kecekapan dan kebolehujian, menyediakan antara muka API yang bersih dan menyokong perkhidmatan tanpa kewarganegaraan. Slim: minimalis, pantas, menyediakan sistem penghalaan mudah dan pembina bahagian tengah pilihan, sesuai untuk membina API berprestasi tinggi.

Penyepaduan rangka kerja PHP dengan DevOps: masa depan automasi dan ketangkasan Penyepaduan rangka kerja PHP dengan DevOps: masa depan automasi dan ketangkasan Jun 05, 2024 pm 09:18 PM

Mengintegrasikan rangka kerja PHP dengan DevOps boleh meningkatkan kecekapan dan ketangkasan: mengautomasikan tugas yang membosankan, membebaskan kakitangan untuk fokus pada tugas strategik, memendekkan kitaran keluaran, mempercepatkan masa untuk memasarkan, meningkatkan kualiti kod, mengurangkan ralat, meningkatkan kerjasama pasukan merentas fungsi dan memecahkan silo pembangunan dan operasi

Potensi aplikasi kecerdasan buatan dalam rangka kerja PHP Potensi aplikasi kecerdasan buatan dalam rangka kerja PHP Jun 03, 2024 am 11:01 AM

Potensi aplikasi Kecerdasan Buatan (AI) dalam rangka kerja PHP termasuk: Pemprosesan Bahasa Semulajadi (NLP): untuk menganalisis teks, mengenal pasti emosi dan menjana ringkasan. Pemprosesan imej: digunakan untuk mengenal pasti objek imej, pengesanan muka dan saiz semula. Pembelajaran mesin: untuk ramalan, pengelasan dan pengelompokan. Kes praktikal: chatbots, pengesyoran diperibadikan, pengesanan penipuan. Penyepaduan AI boleh meningkatkan kefungsian tapak web atau aplikasi, menyediakan ciri baharu yang berkuasa.

Rangka kerja PHP manakah yang menawarkan perpustakaan sambungan paling komprehensif untuk pembangunan pesat? Rangka kerja PHP manakah yang menawarkan perpustakaan sambungan paling komprehensif untuk pembangunan pesat? Jun 04, 2024 am 10:45 AM

Pustaka sambungan rangka kerja PHP menyediakan empat rangka kerja untuk pemilihan: Laravel: Terkenal dengan ekosistem yang luas dan pakej pihak ketiga, ia menyediakan pengesahan, penghalaan, pengesahan dan sambungan lain. Symfony: Sangat modular, memanjangkan kefungsian melalui "Himpunan" boleh guna semula, meliputi bidang seperti pengesahan dan borang. CodeIgniter: ringan dan berprestasi tinggi, menyediakan sambungan praktikal seperti sambungan pangkalan data dan pengesahan borang. ZendFramework: Ciri peringkat perusahaan yang berkuasa, dengan sambungan seperti pengesahan, sambungan pangkalan data, sokongan RESTfulAPI, dsb.

Rangka Kerja PHP dan Kepintaran Buatan: Panduan Pembangun Rangka Kerja PHP dan Kepintaran Buatan: Panduan Pembangun Jun 04, 2024 pm 12:47 PM

Gunakan rangka kerja PHP untuk menyepadukan kecerdasan buatan (AI) untuk memudahkan penyepaduan AI dalam aplikasi web rangka kerja yang disyorkan: Laravel: ringan, cekap dan berkuasa. CodeIgniter: Mudah dan mudah digunakan, sesuai untuk aplikasi kecil. ZendFramework: Rangka kerja peringkat perusahaan dengan fungsi lengkap. Kaedah penyepaduan AI: Model pembelajaran mesin: melaksanakan tugas tertentu. AIAPI: Menyediakan fungsi pra-bina. Perpustakaan AI: mengendalikan tugas AI.

See all articles