Sebagai pembangun PHP dan pembangun teknikal dalam pasukan permulaan, memilih rangka kerja pembangunan adalah perkara yang sangat sukar.
Dengan ThinkPHP, anda boleh bermula dengan merekrut pembangun yang baru menamatkan pengajian dari institusi latihan, tetapi menyahkan prestasi daripada kod pos adalah menyusahkan. Walau bagaimanapun, banyak fungsi pihak ketiga tidak perlu ditulis sendiri, kerana ramai pakar telah membuka jalan.
Dengan Laravel, Legend sangat selesa untuk menulis dan mempunyai skalabiliti yang mencukupi, tetapi kos pembelajaran agak tinggi Anda tidak boleh memberi masa setengah bulan kepada pembangun junior untuk mempelajari rangka kerja. Selain itu, dikatakan bahawa orang dalam industri telah mendedahkan bahawa prestasi Laravel tidak begitu baik, dan dokumentasinya tidak begitu kaya.
Dengan Yii, sintaksnya agak menyusahkan, dan pemisahan kod hadapan dan belakang agak menyusahkan, tetapi prestasinya sangat baik, dan ia sudah digunakan oleh banyak syarikat domestik yang besar berlaku yang tidak dijangka, anda boleh mencari pakar dengan cepat untuk menjawab soalan anda.
Adalah lebih baik untuk melakukan penilaian prestasi yang mudah Anda tidak boleh tersilap dengan memilih yang mempunyai prestasi cemerlang
Ujian Prestasi
Masa ujian: 06 Mei 2016
Alat ujian: pengepungan (kerana ab sistem MAC sentiasa mempunyai ralat pr_socket_recv: Tetapan semula sambungan oleh rakan sebaya (54), jadi saya memilih pengepungan)
Mesin ujian: Pemproses MacPro Core i5/memori 8GB/Memori kilat SSD 256GB
Persekitaran ujian: Apache PHP5.6
Versi rangka kerja: ThinkPHP 3.2.3 Laravel 5.2 Yii2.0.5
Prinsip ujian: Setiap kitaran ujian ialah 5 kali, dan data sederhana diambil
Nota tambahan: Semua projek diletakkan dalam subdirektori
Penjelasan keputusan
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 最短的单个请求
Mulakan ujian
Tambah pengawal dan masukkan HelloWorld 10,000 kali dalam pengawal
Concurrency 50 gelung 10 kali:
Perkara pertama yang datang kepada kami ialah ThinkPHP, yang kelihatan baik
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
Kemudian Laravle, baiklah, sedikit kecewa
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
Yii, yang agak optimis sebelum perlawanan akhir
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
Concurrency 200 gelung 10 kali:
Pertama ialah 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
Kemudian 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
Akhirnya 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
Tidak disangka-sangka, tanpa pengoptimuman, ThinkPHP adalah yang terpantas, Yii lebih pantas sedikit, dan Laravel menamatkan ujian dengan laju yang goyah. Hasilnya agak tidak dijangka, tetapi ujian di atas hanya mewakili persekitaran pembangunan Rangka kerja akan dioptimumkan di bawah untuk mensimulasikan persekitaran dalam talian.
Rangka kerja pengoptimuman
ThinkPHP:
APP_DEBUG改为false
Laravel:
APP_DEBUG改为false php artisan route:cache php artisan optimize php artisan config:cache composer dumpautoload -o
Yii:
YII_DEBUG ditukar kepada palsu
komposer dumpautoload -o
Concurrency 200 gelung 10 kali:
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
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
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
Perkara yang pelik ialah apabila rangka kerja mematikan mod nyahpepijat, terdapat lebih banyak kegagalan. Walau bagaimanapun, adalah jelas bahawa selepas pengoptimuman mudah, prestasi Laravel telah bertambah baik, tetapi ia masih lebih rendah daripada dua rangka kerja yang lain.
Kesimpulan
Semasa ujian, saya berasa tertekan dan merasakan bahawa pandangan dunia saya telah runtuh, sehingga runtuh.
Prestasi ThinkPHP adalah dua kali lebih tinggi daripada Yii dan hampir empat kali lebih tinggi daripada Laravel
Prestasi Yii agak biasa-biasa sahaja, tetapi dalam ujian, adalah jelas bahawa terdapat lebih sedikit kegagalan permintaan daripada dua rangka kerja yang lain
Laravel masih anggun, tetapi persembahannya lebih membimbangkan.
Akhir sekali
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