国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Jadual Kandungan
PHP框架性能測試報(bào)告,php框架性能測試
Rumah pembangunan bahagian belakang tutorial php PHP框架性能測試報(bào)告,php框架性能測試_PHP教程

PHP框架性能測試報(bào)告,php框架性能測試_PHP教程

Jul 12, 2016 am 08:53 AM
php rangka kerja php Ujian prestasi

PHP框架性能測試報(bào)告,php框架性能測試

作為一個(gè)PHP開發(fā)者,而且是初創(chuàng)企業(yè)團(tuán)隊(duì)的技術(shù)開發(fā)者,選擇開發(fā)框架是個(gè)很艱難的事情。

用ThinkPHP的話,招聘一個(gè)剛從培訓(xùn)機(jī)構(gòu)出來的開發(fā)者就可以上手了,但是性能和后期代碼解耦是個(gè)讓人頭疼的事情。不過很多第三方功能不需要自己寫,眾多大牛已經(jīng)給鋪好路了。

用Laravel的話,傳說寫起來很爽擴(kuò)展性也夠,但是學(xué)習(xí)成本有點(diǎn)高,總不能給初級開發(fā)者半個(gè)月的時(shí)間去學(xué)習(xí)框架吧。而且據(jù)說江湖人士透漏,Laravel性能不怎么樣,文檔也并不是特別豐富。

用Yii的話,語法有點(diǎn)啰嗦,前后端代碼分離有點(diǎn)小麻煩,不過性能是非常好的,而且已經(jīng)有眾多國內(nèi)大公司在使用了,出現(xiàn)意外可以快速的找到大牛答疑解惑。

不如做個(gè)簡單的性能評測,選個(gè)性能出色的總不會出錯(cuò)

性能測試
測試時(shí)間: 2016年05月06日
測試工具: siege (因?yàn)镸AC系統(tǒng)的ab總是會出現(xiàn) pr_socket_recv: Connection reset by peer (54) 的錯(cuò)誤,所以選擇了siege)
測試機(jī)器: MacPro Core i5 處理器/8GB內(nèi)存/256GB SSD閃存
測試環(huán)境: Apache PHP5.6
框架版本: ThinkPHP 3.2.3 Laravel 5.2 Yii2.0.5
測試原則: 每次測試循環(huán)5次,取中等數(shù)據(jù)
補(bǔ)充說明:所有項(xiàng)目都是讓在子目錄中

結(jié)果說明

Transactions:        2119 hits 處理請求總數(shù)量
Availability:        96.85 % 可用性
Elapsed time:        9.74 secs 運(yùn)行時(shí)間
Data transferred:      1.31 MB 數(shù)據(jù)傳輸量
Response time:        0.60 secs 響應(yīng)時(shí)間
Transaction rate:     217.56 trans/sec 每秒處理效率
Throughput:        0.13 MB/sec 每秒處理數(shù)據(jù)
Concurrency:       130.28 并發(fā)
Successful transactions:    2162 成功的請求
Failed transactions:       69 失敗的請求
Longest transaction:      2.85 最長的單個(gè)請求
Shortest transaction:      0.01 最短的單個(gè)請求

開始測試

增加一個(gè)控制器,并在控制器中輸入10000次HelloWorld

并發(fā)50循環(huán)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

然后是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

最后賽前比較看好的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

并發(fā)200循環(huán)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

然后是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

最后是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

沒想到在沒有優(yōu)化的情況下,ThinkPHP的速度是最快的,Yii略微多一些,Laravel步履蹣跚的跑完了測試。結(jié)果是有些出人意料的,不過上述的測試只代表了開發(fā)環(huán)境,下面會對框架進(jìn)行優(yōu)化,模擬線上環(huán)境。

優(yōu)化框架

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改為false
composer dumpautoload -o
并發(fā)200循環(huán)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

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

比較奇怪的一點(diǎn),當(dāng)框架關(guān)掉調(diào)試模式后都出現(xiàn)了較多失敗的情況。不過明顯的看到,Laravel進(jìn)行簡單的優(yōu)化后,性能大大的提升了,但還是低于其他兩個(gè)框架。

結(jié)論

在測試的過程中,其他我的心情是沮喪的,感覺自己的三觀世界已經(jīng)崩塌了,崩塌至渣。

ThinkPHP的性能比Yii高出一倍,比Laravel高出近四倍
Yii的性能比較中庸,但是在測試中會明顯發(fā)現(xiàn)請求失敗的情況比其他兩個(gè)框架要少
Laravel依舊優(yōu)雅,不過性能堪憂,用網(wǎng)友的話形容比較好 學(xué)之者生用之者死

最后

我的項(xiàng)目最后使用了自建框架進(jìn)行開發(fā),得益于composer的強(qiáng)大,開發(fā)的過程非常順利,最后附上自有框架在200并發(fā)10次循環(huán)的數(shù)據(jù),框架開源但是更新比較忙,歡迎在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

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/1123783.htmlTechArticlePHP框架性能測試報(bào)告,php框架性能測試 作為一個(gè)PHP開發(fā)者,而且是初創(chuàng)企業(yè)團(tuán)隊(duì)的技術(shù)開發(fā)者,選擇開發(fā)框架是個(gè)很艱難的事情。 用Thin...
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

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

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.

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)

Bagaimana untuk menaik taraf versi PHP? Bagaimana untuk menaik taraf versi PHP? Jun 27, 2025 am 02:14 AM

Menaik taraf versi PHP sebenarnya tidak sukar, tetapi kunci terletak pada langkah -langkah operasi dan langkah berjaga -jaga. Berikut adalah kaedah khusus: 1. Sahkan versi PHP semasa dan persekitaran berjalan, gunakan baris arahan atau fail phpinfo.php untuk dilihat; 2. Pilih versi baru yang sesuai dan pasangnya. Adalah disyorkan untuk memasangnya dengan 8.2 atau 8.1. Pengguna Linux menggunakan pengurus pakej, dan pengguna macOS menggunakan homebrew; 3. Migrasi fail dan sambungan konfigurasi, kemas kini php.ini dan pasang sambungan yang diperlukan; 4. Uji sama ada laman web berjalan secara normal, periksa log ralat untuk memastikan tiada masalah keserasian. Ikuti langkah -langkah ini dan anda boleh berjaya melengkapkan peningkatan dalam kebanyakan situasi.

Bagaimanakah saya menghalang serangan pemalsuan permintaan lintas tapak (CSRF) dalam php? Bagaimanakah saya menghalang serangan pemalsuan permintaan lintas tapak (CSRF) dalam php? Jun 28, 2025 am 02:25 AM

Topreventcsrfattacksinphp, Extementanti-Csrftokens.1) GenerateAndStoreSecureTokensusingRandom_Bytes () orbin2hex (random_bytes (32 )), savethemin $ _Session, andincludetheminFormsashiddeninputs.2) validateTokensonsmissionbystrictlycomparingtheposttokenwiththe

Panduan Pemula PHP: Penjelasan terperinci mengenai konfigurasi persekitaran tempatan Panduan Pemula PHP: Penjelasan terperinci mengenai konfigurasi persekitaran tempatan Jun 27, 2025 am 02:09 AM

Untuk menyediakan persekitaran pembangunan PHP, anda perlu memilih alat yang sesuai dan memasang konfigurasi dengan betul. ① Persekitaran tempatan PHP yang paling asas memerlukan tiga komponen: pelayan web (Apache atau nginx), PHP itu sendiri dan pangkalan data (seperti MySQL/MariaDB); ② Adalah disyorkan bahawa pemula menggunakan pakej integrasi seperti XAMPP atau MAMP, yang memudahkan proses pemasangan. XAMPP sesuai untuk Windows dan MacOS. Selepas pemasangan, fail projek diletakkan di direktori HTDOCS dan diakses melalui localhost; ③mamp sesuai untuk pengguna Mac dan menyokong penukaran mudah versi PHP, tetapi versi percuma mempunyai fungsi terhad; ④ Pengguna lanjutan boleh memasangnya secara manual dengan homebrew, dalam sistem macOS/linux

Bagaimana menggabungkan dua nilai PHP Arrays yang unik? Bagaimana menggabungkan dua nilai PHP Arrays yang unik? Jul 02, 2025 pm 05:18 PM

Untuk menggabungkan dua susunan PHP dan menyimpan nilai unik, terdapat dua kaedah utama. 1. Untuk tatasusunan indeks atau hanya deduplikasi, gunakan Array_Merge dan Array_unique Combinations: First Gabungan Array_Merge ($ array1, $ array2) dan kemudian gunakan array_unique () untuk deduplikasi mereka untuk akhirnya mendapatkan array baru yang mengandungi semua nilai unik; 2. Untuk array bersekutu dan ingin mengekalkan pasangan nilai utama dalam array pertama, gunakan pengendali: $ hasil = $ array1 $ array2, yang akan memastikan bahawa kunci dalam array pertama tidak akan ditimpa oleh array kedua. Kedua -dua kaedah ini boleh digunakan untuk senario yang berbeza, bergantung kepada sama ada nama kunci dikekalkan atau hanya fokus yang dihadapi

Bagaimana cara menggunakan fungsi keluar PHP? Bagaimana cara menggunakan fungsi keluar PHP? Jul 03, 2025 am 02:15 AM

Keluar () adalah fungsi dalam PHP yang digunakan untuk menamatkan pelaksanaan skrip dengan segera. Kegunaan umum termasuk: 1. Menamatkan skrip terlebih dahulu apabila pengecualian dikesan, seperti fail tidak wujud atau pengesahan gagal; 2. Output hasil pertengahan semasa debugging dan berhenti pelaksanaan; 3. Panggilan keluar () selepas pengalihan bersamaan dengan header () untuk mengelakkan pelaksanaan kod berikutnya; Di samping itu, keluar () boleh menerima parameter rentetan sebagai kandungan output atau integer sebagai kod status, dan aliasnya mati ().

Memohon struktur semantik dengan artikel, seksyen, dan selain dalam HTML Memohon struktur semantik dengan artikel, seksyen, dan selain dalam HTML Jul 05, 2025 am 02:03 AM

Penggunaan rasional tag semantik dalam HTML dapat meningkatkan kejelasan struktur halaman, aksesibilitas dan kesan SEO. 1. Digunakan untuk blok kandungan bebas, seperti jawatan blog atau komen, ia mesti mandiri; 2. Digunakan untuk kandungan berkaitan klasifikasi, biasanya termasuk tajuk, dan sesuai untuk modul yang berlainan halaman; 3. Digunakan untuk maklumat tambahan yang berkaitan dengan kandungan utama tetapi tidak teras, seperti cadangan sidebar atau profil pengarang. Dalam perkembangan sebenar, label harus digabungkan dan lain -lain, elakkan bersarang yang berlebihan, pastikan struktur mudah, dan sahkan rasionalitas struktur melalui alat pemaju.

Bagaimana saya mengakses data sesi dalam php? Bagaimana saya mengakses data sesi dalam php? Jun 30, 2025 am 01:33 AM

Untuk mengakses data sesi dalam PHP, anda mesti mula memulakan sesi dan kemudian beroperasi melalui array hyperglobal $ _Session. 1. Sesi mesti dimulakan menggunakan session_start (), dan fungsi mesti dipanggil sebelum sebarang output; 2. Apabila mengakses data sesi, periksa sama ada kunci wujud. Anda boleh menggunakan isset ($ _ sesi ['kunci']) atau array_key_exists ('kunci', $ _ sesi); 3. Set atau kemas kini pembolehubah sesi hanya perlu memberikan nilai kepada array $ _Session tanpa penjimatan secara manual; 4. Jelas data khusus dengan UNSET ($ _ Sesi ['Kunci']), Kosongkan semua data dan tetapkan $ _Session ke array kosong.

Apakah fungsi rekursif dalam php? Apakah fungsi rekursif dalam php? Jun 29, 2025 am 02:02 AM

Fungsi rekursif merujuk kepada fungsi panggilan diri dalam PHP. Unsur -unsur teras adalah 1. Menentukan keadaan penamatan (contoh asas), 2. Mengurangkan masalah dan memanggil dirinya secara rekursif (contoh rekursif). Ia sesuai untuk menangani struktur hierarki, membongkar subproblem duplikat, atau meningkatkan kebolehbacaan kod, seperti mengira faktorial, melintasi direktori, dan lain -lain. Apabila menulis, keadaan keluar harus dijelaskan, contoh asas harus secara beransur -ansur didekati, parameter yang berlebihan harus dielakkan, dan input kecil harus diuji. Sebagai contoh, apabila mengimbas direktori, fungsi ini menemui subdirektori dan memanggilnya secara rekursif sehingga semua peringkat dilalui.

See all articles