摘要:我最近在給完善說明文檔有一節是性能測試比較才有了下面這個項目項目托管地址針對上比較活躍的幾個開源項目,做了簡單的比較。供大家參考所有框架僅輸出就僅測試框架的本身的性能。如果有精力可以測下帶有數據庫交互的測試。祝國內產生更多優秀的開源產品
我最近在給tastphp 完善說明文檔 有一節是性能測試比較 ,才有了下面這個項目
項目托管地址: https://github.com/xujiajun/p...
針對github上比較活躍的幾個開源項目,做了簡單的比較。供大家參考:
php framework benchmark (include laravel、symfony、silex、lumen、slim、yii2、tastphp)
所有框架僅輸出 "ok",就僅測試框架的本身的性能。如果有精力可以測下帶有數據庫交互的測試。
以下測試僅供參考,如果你想測的準,建議在生產環境測試!
測試的環境OS Name: Mac OS X OS Version: 10.12.6 Architecture: x86_64 CPU:Intel Core i7 1.7 GHz *2 RAM:8 GB PHP version 7.1.10 opcache 開的各個框架的版本
Laravel version 5.5.0 Lumen version 5.5.0 symfony version 3.3.10 Silex version 2.0.2 Silm version 3.1.4 yii2 version 2.0.12 Tastphp version 1.3.6測試結果 Detail Laravel ab test
Laravel version 5.5.0
optimization
run commands before test:
composer install --optimize-autoloader php artisan config:cache // php artisan route:cache //cannot use route caching if you have ANY route closures
ab test result:
? laravel-5.5.0 git:(master) ? ab -n 1000 -c 100 http://laravel-benchmark.dev/ This is ApacheBench, Version 2.3 <$Revision: 1757674 $> Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Licensed to The Apache Software Foundation, http://www.apache.org/ Benchmarking laravel-benchmark.dev (be patient) Completed 100 requests Completed 200 requests Completed 300 requests Completed 400 requests Completed 500 requests Completed 600 requests Completed 700 requests Completed 800 requests Completed 900 requests Completed 1000 requests Finished 1000 requests Server Software: nginx/1.12.0 Server Hostname: laravel-benchmark.dev Server Port: 80 Document Path: / Document Length: 2 bytes Concurrency Level: 100 Time taken for tests: 3.295 seconds Complete requests: 1000 Failed requests: 0 Total transferred: 982346 bytes HTML transferred: 2000 bytes Requests per second: 303.46 [#/sec] (mean) Time per request: 329.538 [ms] (mean) Time per request: 3.295 [ms] (mean, across all concurrent requests) Transfer rate: 291.11 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 0 1 1.8 0 8 Processing: 22 311 59.4 315 571 Waiting: 22 311 59.4 315 571 Total: 30 312 58.0 315 571 Percentage of the requests served within a certain time (ms) 50% 315 66% 335 75% 351 80% 354 90% 362 95% 367 98% 378 99% 407 100% 571 (longest request)Lumen version 5.5.0
run commands before test:
composer install --optimize-autoloader
ab test result:
? lumen-5.5.0 git:(master) ? ab -n 1000 -c 100 http://lumen-benchmark.dev/ This is ApacheBench, Version 2.3 <$Revision: 1757674 $> Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Licensed to The Apache Software Foundation, http://www.apache.org/ Benchmarking lumen-benchmark.dev (be patient) Completed 100 requests Completed 200 requests Completed 300 requests Completed 400 requests Completed 500 requests Completed 600 requests Completed 700 requests Completed 800 requests Completed 900 requests Completed 1000 requests Finished 1000 requests Server Software: nginx/1.12.0 Server Hostname: lumen-benchmark.dev Server Port: 80 Document Path: / Document Length: 2 bytes Concurrency Level: 100 Time taken for tests: 0.639 seconds Complete requests: 1000 Failed requests: 0 Total transferred: 199000 bytes HTML transferred: 2000 bytes Requests per second: 1565.02 [#/sec] (mean) Time per request: 63.897 [ms] (mean) Time per request: 0.639 [ms] (mean, across all concurrent requests) Transfer rate: 304.14 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 0 0 0.9 0 6 Processing: 9 61 9.9 62 74 Waiting: 9 61 9.9 62 74 Total: 14 61 9.1 62 74 Percentage of the requests served within a certain time (ms) 50% 62 66% 64 75% 65 80% 66 90% 68 95% 71 98% 72 99% 73 100% 74 (longest request)Symfony version 3.3.10
run commands before test:
composer install --optimize-autoloader
ab test result:
? symfony-3.3.10 git:(master) ? ab -n 1000 -c 100 http://symfony-benchmark.dev/ This is ApacheBench, Version 2.3 <$Revision: 1757674 $> Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Licensed to The Apache Software Foundation, http://www.apache.org/ Benchmarking symfony-benchmark.dev (be patient) Completed 100 requests Completed 200 requests Completed 300 requests Completed 400 requests Completed 500 requests Completed 600 requests Completed 700 requests Completed 800 requests Completed 900 requests Completed 1000 requests Finished 1000 requests Server Software: nginx/1.12.0 Server Hostname: symfony-benchmark.dev Server Port: 80 Document Path: / Document Length: 2 bytes Concurrency Level: 100 Time taken for tests: 1.716 seconds Complete requests: 1000 Failed requests: 0 Total transferred: 237000 bytes HTML transferred: 2000 bytes Requests per second: 582.60 [#/sec] (mean) Time per request: 171.646 [ms] (mean) Time per request: 1.716 [ms] (mean, across all concurrent requests) Transfer rate: 134.84 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 0 1 0.9 0 5 Processing: 12 163 34.6 168 218 Waiting: 12 163 34.6 168 218 Total: 17 163 33.9 169 218 WARNING: The median and mean for the initial connection time are not within a normal deviation These results are probably not that reliable. Percentage of the requests served within a certain time (ms) 50% 169 66% 176 75% 184 80% 187 90% 199 95% 207 98% 211 99% 213 100% 218 (longest request)Silex version 2.0.2
run commands before test:
composer install --optimize-autoloader
ab test result:
? silex-2.0.2 git:(master) ? ab -n 1000 -c 100 http://silex-benchmark.dev/ This is ApacheBench, Version 2.3 <$Revision: 1757674 $> Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Licensed to The Apache Software Foundation, http://www.apache.org/ Benchmarking silex-benchmark.dev (be patient) Completed 100 requests Completed 200 requests Completed 300 requests Completed 400 requests Completed 500 requests Completed 600 requests Completed 700 requests Completed 800 requests Completed 900 requests Completed 1000 requests Finished 1000 requests Server Software: nginx/1.12.0 Server Hostname: silex-benchmark.dev Server Port: 80 Document Path: / Document Length: 2 bytes Concurrency Level: 100 Time taken for tests: 0.747 seconds Complete requests: 1000 Failed requests: 0 Total transferred: 237000 bytes HTML transferred: 2000 bytes Requests per second: 1338.53 [#/sec] (mean) Time per request: 74.709 [ms] (mean) Time per request: 0.747 [ms] (mean, across all concurrent requests) Transfer rate: 309.80 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 0 0 0.9 0 4 Processing: 15 71 9.3 73 88 Waiting: 15 71 9.3 73 88 Total: 20 72 8.6 73 89 Percentage of the requests served within a certain time (ms) 50% 73 66% 74 75% 75 80% 76 90% 79 95% 81 98% 82 99% 84 100% 89 (longest request)slim version 3.1.4
run commands before test:
composer install --optimize-autoloader
ab test:
? silm-3.1.4 git:(master) ? ab -n 1000 -c 100 http://slim-benchmark.dev/ This is ApacheBench, Version 2.3 <$Revision: 1757674 $> Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Licensed to The Apache Software Foundation, http://www.apache.org/ Benchmarking slim-benchmark.dev (be patient) Completed 100 requests Completed 200 requests Completed 300 requests Completed 400 requests Completed 500 requests Completed 600 requests Completed 700 requests Completed 800 requests Completed 900 requests Completed 1000 requests Finished 1000 requests Server Software: nginx/1.12.0 Server Hostname: slim-benchmark.dev Server Port: 80 Document Path: / Document Length: 2 bytes Concurrency Level: 100 Time taken for tests: 0.703 seconds Complete requests: 1000 Failed requests: 0 Total transferred: 333000 bytes HTML transferred: 2000 bytes Requests per second: 1423.44 [#/sec] (mean) Time per request: 70.252 [ms] (mean) Time per request: 0.703 [ms] (mean, across all concurrent requests) Transfer rate: 462.90 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 0 0 1.0 0 5 Processing: 7 67 15.7 65 210 Waiting: 7 66 15.7 65 210 Total: 12 67 15.1 66 210 Percentage of the requests served within a certain time (ms) 50% 66 66% 69 75% 70 80% 72 90% 88 95% 96 98% 102 99% 105 100% 210 (longest request)yii2 version 2.0.12
run commands before test:
composer install --optimize-autoloader
ab test result:
? yii2-2.0.12 git:(master) ? ab -n 1000 -c 100 http://yii2-benchmark.dev/ This is ApacheBench, Version 2.3 <$Revision: 1757674 $> Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Licensed to The Apache Software Foundation, http://www.apache.org/ Benchmarking yii2-benchmark.dev (be patient) Completed 100 requests Completed 200 requests Completed 300 requests Completed 400 requests Completed 500 requests Completed 600 requests Completed 700 requests Completed 800 requests Completed 900 requests Completed 1000 requests Finished 1000 requests Server Software: nginx/1.12.0 Server Hostname: yii2-benchmark.dev Server Port: 80 Document Path: / Document Length: 2 bytes Concurrency Level: 100 Time taken for tests: 0.649 seconds Complete requests: 1000 Failed requests: 0 Total transferred: 165000 bytes HTML transferred: 2000 bytes Requests per second: 1539.74 [#/sec] (mean) Time per request: 64.946 [ms] (mean) Time per request: 0.649 [ms] (mean, across all concurrent requests) Transfer rate: 248.10 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 0 0 1.0 0 5 Processing: 16 62 9.2 61 96 Waiting: 16 62 9.2 61 96 Total: 21 62 9.2 61 98 Percentage of the requests served within a certain time (ms) 50% 61 66% 64 75% 67 80% 69 90% 73 95% 77 98% 89 99% 94 100% 98 (longest request)Tastphp version 1.3.6
run commands before test:
composer install --optimize-autoloader php bin/console cache:config php bin/console cache:route ? tastphp-1.3.6 git:(master) mv config/example.app.yml config/app.yml ? tastphp-1.3.6 git:(master) cat config/app.yml version: v1.3.6 debug: false secret: tastphp # dev | test | prod env: prod timezone: UTC name: tastphp
ab test result:
? tastphp-1.3.6 git:(master) ? ab -n 1000 -c 100 http://tastphp-benchmark.dev/ This is ApacheBench, Version 2.3 <$Revision: 1757674 $> Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Licensed to The Apache Software Foundation, http://www.apache.org/ Benchmarking tastphp-benchmark.dev (be patient) Completed 100 requests Completed 200 requests Completed 300 requests Completed 400 requests Completed 500 requests Completed 600 requests Completed 700 requests Completed 800 requests Completed 900 requests Completed 1000 requests Finished 1000 requests Server Software: nginx/1.12.0 Server Hostname: tastphp-benchmark.dev Server Port: 80 Document Path: / Document Length: 2 bytes Concurrency Level: 100 Time taken for tests: 0.487 seconds Complete requests: 1000 Failed requests: 0 Total transferred: 165000 bytes HTML transferred: 2000 bytes Requests per second: 2051.92 [#/sec] (mean) Time per request: 48.735 [ms] (mean) Time per request: 0.487 [ms] (mean, across all concurrent requests) Transfer rate: 330.63 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 0 0 0.8 0 4 Processing: 7 46 7.5 48 55 Waiting: 7 46 7.5 48 55 Total: 11 46 6.8 48 56 Percentage of the requests served within a certain time (ms) 50% 48 66% 49 75% 50 80% 51 90% 52 95% 53 98% 54 99% 55 100% 56 (longest request)廣告時間 start 關注下:
?
tastphp 骨架: https://github.com/tastphp/ta...
tastphp 內核: https://github.com/tastphp/fr...
最近也在編寫以實際項目來說明 tastphp 的簡單優雅好用
中文文檔: https://github.com/tastphp/ta...
歡迎 PR、issure 給我 你的 star,確實給我不小鼓勵!讓我堅持下去。祝國內產生更多優秀的開源產品!
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/30698.html
摘要:比如我開發好了一個微服務,想測試其在大并發請求下的性能表現如何。比較方便的一個做法是使用工具來構造這些請求。這個請求的意思是使用請求查詢賬號名稱為的實例。維護完畢之后點執行按鈕,會觀察到個線程同時發出請求,并能看到每個請求的響應時間。 比如我開發好了一個微服務,想測試其在大并發請求下的性能表現如何。 比較方便的一個做法是使用工具jMeter來構造這些請求。 創建一個新的工程: show...
摘要:中文資料導航官網七牛鏡像深入淺出系列進階必讀中文文檔被誤解的編寫實戰系列熱門模塊排行榜,方便找出你想要的模塊多線程,真正的非阻塞淺析的類利用編寫異步多線程的實例中與的區別管道拒絕服務漏洞高級編程業界新聞看如何評價他們的首次嘗鮮程序員如何說服 node.js中文資料導航 Node.js HomePage Node官網七牛鏡像 Infoq深入淺出Node.js系列(進階必讀) Nod...
摘要:我一個朋友就是選擇性能測試如今幾經月薪一什么是性能測試性能測試是指通過特定方式,對被測系統按照一定策略施加壓力,獲取系統響應時間吞吐量資源利用率等性能指標,以期保證生產系統的性能能夠滿足用戶需求的過程。 ...
閱讀 2097·2023-04-26 00:09
閱讀 3115·2021-09-26 10:12
閱讀 3481·2019-08-30 15:44
閱讀 2863·2019-08-30 13:47
閱讀 922·2019-08-23 17:56
閱讀 3226·2019-08-23 15:31
閱讀 475·2019-08-23 13:47
閱讀 2508·2019-08-23 11:56