php5.3.8和php7.0.14做性能壓測對比,為什么差距不大?


如標題,兩個版本都部署在同一服務器上,php安裝編譯時啟用的擴展也相同,用nginx做web服務器反向代理,用webbench壓測同一php腳本(一次db查詢,然后foreach循環輸出查詢結果),按說性能至少應提升一倍,但實際提升不多,不知道問題出在哪?

php5.3.8壓測結果

# webbench -c 200 -t 10 http://test538_13.cn/index.php
Webbench - Simple Web Benchmark 1.5
Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.

Benchmarking: GET http://test538_13.cn/index.php
200 clients, running 10 sec.

Speed=37104 pages/min, 17384534 bytes/sec.
Requests: 6184 susceed, 0 failed.


php7.0.14壓測結果

webbench -c 200 -t 10 http://test7014_13.cn/index.php
Webbench - Simple Web Benchmark 1.5
Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.

Benchmarking: GET http://test7014_13.cn/index.php
200 clients, running 10 sec.

Speed=39438 pages/min, 18472156 bytes/sec.
Requests: 6573 susceed, 0 failed.

11 个解决方案

#1


按說性能至少應提升一倍 的理由是什么?
數據庫本身的性能並不會因 php 的性能提高而提高

#2


樓主問一下,php7現在是不是比hhvm快啊

#3


引用 1 樓 xuzuning 的回復:
按說性能至少應提升一倍 的理由是什么?
數據庫本身的性能並不會因 php 的性能提高而提高
是的,db查詢很占用時間,但我又試了直接輸出123456,然后exit的場景,壓測性能提升不到20%,這種場景有點不理解

php5.3.8

[******]# webbench -c 200 -t 10 http://test538_13.cn/index.php
Webbench - Simple Web Benchmark 1.5
Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.

Benchmarking: GET http://test538_13.cn/index.php
200 clients, running 10 sec.

Speed=98364 pages/min, 249173 bytes/sec.
Requests: 16394 susceed, 0 failed.


php7.0.14

[********]# webbench -c 200 -t 10 http://test7014_13.cn/index.php
Webbench - Simple Web Benchmark 1.5
Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.

Benchmarking: GET http://test7014_13.cn/index.php
200 clients, running 10 sec.

Speed=110760 pages/min, 310128 bytes/sec.
Requests: 18460 susceed, 0 failed.

#4


引用 2 樓 imarshal 的回復:
樓主問一下,php7現在是不是比hhvm快啊
據說不必hhvm差

#5


echo 310128 / 249173; //1.2446292335044
顯然不到 20% 的估計是錯誤的

echo 18460 / 16394; //1.1260217152617
多出的 12% 的請求,又在考驗 web 服務器的響應能力

你應去對比兩者在復雜計算時的能力,而不是考察整站的性能


php5 < hhvm < php7

#6


引用 4 樓 helloqhq 的回復:
Quote: 引用 2 樓 imarshal 的回復:

樓主問一下,php7現在是不是比hhvm快啊
據說不必hhvm差


那fackbook現在用的是什么,應該不用php7,那是不是php5結合hack啊

#7


引用 5 樓 xuzuning 的回復:
echo 310128 / 249173; //1.2446292335044
顯然不到 20% 的估計是錯誤的

echo 18460 / 16394; //1.1260217152617
多出的 12% 的請求,又在考驗 web 服務器的響應能力

你應去對比兩者在復雜計算時的能力,而不是考察整站的性能


php5 < hhvm < php7
是的,之前只考慮了每秒響應的請求數,沒考慮每秒數據傳輸量。據說PHP7在IO場景性能至少提升1倍,在復雜計算場景能提升6、7倍。我嘗試將場景變復雜些,性能提升也就將近20%左右,沒有傳說的那么多,還是我的壓測思路有問題呢?

代碼:

<?php
for($i=0;$i<10000;$i++){
        $a=$i%2;
        if($a==0){
                $b='sdff';
        }else{
                $b=123455;
        }
        echo $b;
}
exit;


php5.3.8壓測結果:

[*******]# webbench -c 200 -t 10 http://test538_13.cn/index.php
Webbench - Simple Web Benchmark 1.5
Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.

Benchmarking: GET http://test538_13.cn/index.php
200 clients, running 10 sec.

Speed=23832 pages/min, 19913780 bytes/sec.
Requests: 3972 susceed, 0 failed.


php7.0.14壓測結果:

[*******]# webbench -c 200 -t 10 http://test7014_13.cn/index.php
Webbench - Simple Web Benchmark 1.5
Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.

Benchmarking: GET http://test7014_13.cn/index.php
200 clients, running 10 sec.

Speed=28056 pages/min, 23449050 bytes/sec.
Requests: 4676 susceed, 0 failed.


每秒響應請求數:28056/23832 = 1.177240684793555
每秒數據吞吐量:23449050/19913780 = 1.177528826772215

#8


引用 6 樓 imarshal 的回復:
Quote: 引用 4 樓 helloqhq 的回復:

Quote: 引用 2 樓 imarshal 的回復:

樓主問一下,php7現在是不是比hhvm快啊
據說不必hhvm差


那fackbook現在用的是什么,應該不用php7,那是不是php5結合hack啊
facebook應該還在用hhvm吧,畢竟是facebook打造的hhvm,他們的很多項目應該都用hhvm了,而且php7只在部分場景性能優於hhvm,而且差距不是特別大。相信后續facebook應該會切php7吧,畢竟單獨維護、部署hhvm也是有額外成本的。

#9


引用 8 樓 helloqhq 的回復:
Quote: 引用 6 樓 imarshal 的回復:

Quote: 引用 4 樓 helloqhq 的回復:

Quote: 引用 2 樓 imarshal 的回復:

樓主問一下,php7現在是不是比hhvm快啊
據說不必hhvm差


那fackbook現在用的是什么,應該不用php7,那是不是php5結合hack啊
facebook應該還在用hhvm吧,畢竟是facebook打造的hhvm,他們的很多項目應該都用hhvm了,而且php7只在部分場景性能優於hhvm,而且差距不是特別大。相信后續facebook應該會切php7吧,畢竟單獨維護、部署hhvm也是有額外成本的。


facebook不是專門搞了hack啊,不太可能再用php7了

#10


應該單純php執行,不要連數據庫,因為數據那里占了比較多的時間,看出來差別就不大了。

例如
5.3.8 執行需要1ms
7.0需要執行0.5 ms
數據庫需要執行100ms

5.3.8+數據庫就是 101ms
7.0+數據庫就是100.5ms

差別當然不大。

#11


引用 10 樓 fdipzone 的回復:
應該單純php執行,不要連數據庫,因為數據那里占了比較多的時間,看出來差別就不大了。

例如
5.3.8 執行需要1ms
7.0需要執行0.5 ms
數據庫需要執行100ms

5.3.8+數據庫就是 101ms
7.0+數據庫就是100.5ms

差別當然不大。


單純php執行壓測差別也不大,詳見7樓的壓測結果,也就提升PHP20%左右

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
  © 2014-2022 ITdaan.com 联系我们: