程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> php curl中gzip的壓縮性能測試實例分析

php curl中gzip的壓縮性能測試實例分析

編輯:PHP綜合

本文實例分析了php curl中gzip的壓縮性能測試。分享給大家供大家參考,具體如下:

前因:

請求接口次數很多,每日兩億多次,主要是有些接口返回數據量很大高達110KB(為了減少請求次數,將多個接口合並成一個導致的)。

後端接口的nginx已經開啟gzip,所以做個測試,看看是否在請求時使用壓縮解壓

php CURL 的擴展安裝這裡就不說了

用到的curl的兩個參數

//在http 請求頭加入 gzip壓縮
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Accept-Encoding:gzip'));
//curl返回的結果,采用gzip解壓
curl_setopt($ch, CURLOPT_ENCODING, "gzip");

1、不使用壓縮解壓

$s1 = microtime(true);
$ch = curl_init();
for($i=0; $i<100;$i++){
  $url="http://192.168.0.11:8080/xxxxx/xxxxx?";
  curl_setopt($ch, CURLOPT_URL, $url);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  curl_setopt($ch, CURLOPT_TIMEOUT, 3);
  $data = curl_exec($ch);
}
curl_close($ch);
echo microtime(true)-$s1;
echo "\n";

測試結果:

請求100次平均耗時 2.1s   0.021s/次

2、使用壓縮解壓

$s1 = microtime(true);
$ch = curl_init();
for($i=0; $i<100;$i++){
  $url="http://192.168.0.1:8080/xxxxx/xxxxx?";
  curl_setopt($ch, CURLOPT_URL, $url);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  curl_setopt($ch, CURLOPT_TIMEOUT, 3);
  curl_setopt($ch, CURLOPT_HTTPHEADER, array('Accept-Encoding:gzip'));
  curl_setopt($ch, CURLOPT_ENCODING, "gzip");
  $data = curl_exec($ch);
}
curl_close($ch);
echo microtime(true)-$s1;
echo "\n";

測試結果:

請求100次平均耗時 2.6s   0.026/次

結果分析:

1、不使用壓縮比使用壓縮 請求一次快 5ms

2、千兆網,在局域網內傳輸這些數據大概是 0.7ms

結論:

暫時不使用 curl 的壓縮和解壓

更多關於PHP相關內容感興趣的讀者可查看本站專題:《php curl用法總結》、《PHP數組(Array)操作技巧大全》、《php排序算法總結》、《PHP常用遍歷算法與技巧總結》、《PHP數據結構與算法教程》、《php程序設計算法總結》、《PHP數學運算技巧總結》、《php正則表達式用法總結》、《PHP運算與運算符用法總結》、《php字符串(string)用法總結》及《php常見數據庫操作技巧匯總》

希望本文所述對大家PHP程序設計有所幫助。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved