Rumah >pembangunan bahagian belakang >tutorial php >Laporan ujian prestasi rangka kerja PHP_kemahiran php

Laporan ujian prestasi rangka kerja PHP_kemahiran php

WBOY
WBOYasal
2016-05-16 09:00:182006semak imbas

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

Projek saya akhirnya menggunakan rangka kerja yang dibina sendiri untuk pembangunan Terima kasih kepada kuasa komposer, proses pembangunan berjalan dengan lancar Akhirnya, saya melampirkan data rangka kerja yang dibina sendiri yang menjalankan 200 kitaran serentak selama 10 kali. Rangka kerja adalah sumber terbuka tetapi kemas kini agak sibuk Selamat datang untuk mencari PPPHP di github dan membina rangka kerja dengan saya.

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

Kenyataan:
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