php Guzzle,非同步請求的重要性
近期在寫php介面開發,一個php檔案裡需要請求多個第三方介面,就在測試的時候列印耗時居然達到了1000ms!(一共需要請求四個第三方介面);
也在群友推薦接觸到了guzzle類;能實現多個請求非同步進行(好像是偽非同步,懶得深究);
我用tp5寫了個測試,guzzle和file_get_contents各請求四次,並且列印耗時,結果很明顯
guzzle手冊:
多次測試結果 guz:300ms----fgc:845ms guz:265ms----fgc:743ms guz:277ms----fgc:789ms guz:272ms----fgc:690ms
namespace appopencontroller;use thinkRequest;use thinkModel;use GuzzleHttpClient;use GuzzleHttpPromise;class Index{ public function index(){list($msec, $sec) = explode(' ', microtime()); $time=(float)sprintf('%.0f', (floatval($msec) + floatval($sec)) * 1000); $client = new Client(['base_uri' => '']);// Initiate each request but do not block$promises = [ 'image' => $client->getAsync('%7B%22itemNumId%22%3A%22568914501203%22%7D'), 'png' => $client->getAsync('%7B%22itemNumId%22%3A%22568914501203%22%7D'), 'jpeg' => $client->getAsync('%7B%22itemNumId%22%3A%22568914501203%22%7D'), 'webp' => $client->getAsync('%7B%22itemNumId%22%3A%22568914501203%22%7D') ]; $results = Promiseunwrap($promises);list($msec, $sec) = explode(' ', microtime()); $time2=(float)sprintf('%.0f', (floatval($msec) + floatval($sec)) * 1000); $client=file_get_contents('%7B%22itemNumId%22%3A%22568914501203%22%7D'); $client=file_get_contents('%7B%22itemNumId%22%3A%22568914501203%22%7D'); $client=file_get_contents('%7B%22itemNumId%22%3A%22568914501203%22%7D'); $client=file_get_contents('%7B%22itemNumId%22%3A%22568914501203%22%7D');list($msec, $sec) = explode(' ', microtime()); $time3=(float)sprintf('%.0f', (floatval($msec) + floatval($sec)) * 1000);echo 'guz:';echo $time2-$time;echo 'ms';echo '----';echo 'fgc:';echo $time3-$time2;echo 'ms'; } }?>````
作者:阿哇哥哥
連結:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/2819/viewspace-2804974/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- PHP 請求用 cURL 還是用 guzzle?PHP
- 推薦一個 PHP 網路請求外掛 GuzzlePHP
- tornado非同步請求非阻塞非同步
- iOS 同步請求 非同步請求 GET請求 POST請求iOS非同步
- 使用 Guzzle 中介軟體進行優雅的請求重試
- ios ASIHttpLib 同步請求和非同步請求iOSHTTP非同步
- PHP curl 請求PHP
- AJAX 非同步請求非同步
- 什麼是PHP Guzzle?PHP
- 【轉】怎麼用PHP傳送HTTP請求(POST請求、GET請求)?PHPHTTP
- OKHttp原始碼學習同步請求和非同步請求(二)HTTP原始碼非同步
- Okhttp同步請求原始碼分析HTTP原始碼
- php請求API介面方法PHPAPI
- PHP curl 請求使用教程PHP
- 解決 Laravel 接收非簡單請求時,只有收到 OPTIONS 請求的問題Laravel
- php模擬請求(偽造來源和請求ip)PHP
- axios躺坑之路:cookie,簡單請求與非簡單請求。iOSCookie
- $.post 和 $.get 設定同步和非同步請求非同步
- 非同步請求PHP伺服器,你如何做到無阻塞響應非同步PHP伺服器
- PHP 是怎麼接收到請求的?PHP
- php下請求url的幾種方式PHP
- Axios 非同步請求用法解析iOS非同步
- DeferredResult——非同步請求處理非同步
- 爬蟲 | 非同步請求aiohttp模組爬蟲非同步AIHTTP
- JMeter——非同步請求效能測試JMeter非同步
- PHP 回顧之 Web 請求PHPWeb
- 使用jQuery的ajax同步請求吃過的虧jQuery
- zan正式開源,非同步+非阻塞的PHP框架非同步PHP框架
- 超時重試思考-非冪等請求
- ajax請求的非同步巢狀問題分析非同步巢狀
- nginx+php執行請求的工作原理NginxPHP
- 【PHP】一次請求過程的解析PHP
- PHP 傳送 HTTP 請求的幾種方式PHPHTTP
- 在 DotNetty 中實現同步請求Netty
- vue 中promise 非同步請求資料VuePromise非同步
- php 支援jsonp跨域請求PHPJSON跨域
- PHP傳送POST和GET請求PHP
- jQuery實現的非同步請求程式碼例項jQuery非同步