摘要:老的訪問方式以及耗時(shí)統(tǒng)計(jì)耗時(shí)耗時(shí)秒并發(fā)訪問方式以及耗時(shí)統(tǒng)計(jì)耗時(shí)耗時(shí)秒帥氣吧整個(gè)頁面訪問后端接口的時(shí)間節(jié)省了一半
前言:
在我們平時(shí)的程序中難免出現(xiàn)同時(shí)訪問幾個(gè)接口的情況,平時(shí)我們用curl進(jìn)行訪問的時(shí)候,一般都是單個(gè)、順序訪問,假如有3個(gè)接口,每個(gè)接口耗時(shí)500毫秒那么我們?nèi)齻€(gè)接口就要花費(fèi)1500毫秒了,這個(gè)問題太頭疼了嚴(yán)重影響了頁面訪問速度,有沒有可能并發(fā)訪問來提高速度呢?今天就簡單的說一下,利用curl并發(fā)來提高頁面訪問速度, 希望大家多指導(dǎo)。
1、老的curl訪問方式以及耗時(shí)統(tǒng)計(jì)
0) { $data = false; } curl_close($ch); return $data; } function microtime_float() { list($usec, $sec) = explode(" ", microtime()); return ((float)$usec + (float)$sec); } $url_arr=array( "taobao"=>"http://www.taobao.com", "sohu"=>"http://www.sohu.com", "lai18"=>"http://www.lai18.com", ); $time_start = microtime_float(); $data=array(); foreach ($url_arr as $key=>$val) { $data[$key]=curl_fetch($val); } $time_end = microtime_float(); $time = $time_end - $time_start; echo "耗時(shí):{$time}"; ?>
耗時(shí):0.614秒
2、curl并發(fā)訪問方式以及耗時(shí)統(tǒng)計(jì)
$url) { $timeout=2; $ch[$nch] = curl_init(); curl_setopt_array($ch[$nch], array( CURLOPT_URL => $url, CURLOPT_HEADER => false, CURLOPT_RETURNTRANSFER => true, CURLOPT_TIMEOUT => $timeout, )); curl_multi_add_handle($mh, $ch[$nch]); ++$nch; } /* wait for performing request */ do { $mrc = curl_multi_exec($mh, $running); } while (CURLM_CALL_MULTI_PERFORM == $mrc); while ($running && $mrc == CURLM_OK) { // wait for network if (curl_multi_select($mh, 0.5) > -1) { // pull in new data; do { $mrc = curl_multi_exec($mh, $running); } while (CURLM_CALL_MULTI_PERFORM == $mrc); } } if ($mrc != CURLM_OK) { error_log("CURL Data Error"); } /* get data */ $nch = 0; foreach ($urlarr as $moudle=>$node) { if (($err = curl_error($ch[$nch])) == "") { $res[$nch]=curl_multi_getcontent($ch[$nch]); $result[$moudle]=$res[$nch]; } else { error_log("curl error"); } curl_multi_remove_handle($mh,$ch[$nch]); curl_close($ch[$nch]); ++$nch; } curl_multi_close($mh); return $result; } $url_arr=array( "taobao"=>"http://www.taobao.com", "sohu"=>"http://www.sohu.com", "lai18"=>"http://www.lai18.com", ); function microtime_float() { list($usec, $sec) = explode(" ", microtime()); return ((float)$usec + (float)$sec); } $time_start = microtime_float(); $data=curl_multi_fetch($url_arr); $time_end = microtime_float(); $time = $time_end - $time_start; echo "耗時(shí):{$time}"; ?>
耗時(shí):0.316秒 帥氣吧整個(gè)頁面訪問后端接口的時(shí)間節(jié)省了一半
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/30258.html
摘要:在中巧用解決跳轉(zhuǎn)到第三方平臺(tái)時(shí)不能回調(diào)的問題比如支付在開發(fā)中遇到不少的坑,絕大部分解決了但是在我們的中如果跳轉(zhuǎn)到第三方網(wǎng)站上時(shí),那么問題來了此時(shí)我們的是不能監(jiān)聽到你在其它網(wǎng)站上的事件的,所以當(dāng)你想要回退到我們自己上時(shí)請(qǐng)緊握你的蛋小編在開發(fā)這 在ionic中巧用iframe解決跳轉(zhuǎn)到第三方平臺(tái)時(shí)不能回調(diào)的問題-比如支付 在ionic開發(fā)中遇到不少的坑,絕大部分解決了但是在我們的app...
摘要:三態(tài)分別是就緒運(yùn)行阻塞進(jìn)程的五態(tài)模型在三態(tài)的基礎(chǔ)上發(fā)展而來新建態(tài)運(yùn)行態(tài)終止態(tài)就緒態(tài)等待態(tài)線程稱之為輕量級(jí)的進(jìn)程,程序執(zhí)行流的最小單元。一個(gè)進(jìn)程下有多個(gè)線程來完成不同的工作稱之為多線程。 web資源防盜鏈 盜鏈?zhǔn)鞘裁矗?為什么要防? 在自己頁面上顯示一些不是自己服務(wù)器的資源(圖片、音頻、視頻、css、js等)由于別人盜鏈你的資源會(huì)加重你的服務(wù)器負(fù)擔(dān),所以我們需要防止可能會(huì)影響統(tǒng)計(jì) 防盜鏈...
摘要:不支持多線程模式和回調(diào)處理,因此內(nèi)部腳本都是同步阻塞式的,如果你發(fā)起一個(gè)的請(qǐng)求,那么程序就會(huì)阻塞,直到請(qǐng)求返回結(jié)果,才會(huì)繼續(xù)執(zhí)行代碼。參考資料手冊(cè)手冊(cè)預(yù)定義常量中實(shí)現(xiàn)多線程請(qǐng)求詳解每次使用同時(shí)并發(fā)多少請(qǐng)求合適簡書多線程及原理 后端服務(wù)開發(fā)中經(jīng)常會(huì)有并發(fā)請(qǐng)求的需求,比如你需要獲取10家供應(yīng)商的帶寬數(shù)據(jù)(每個(gè)都提供不同的url),然后返回一個(gè)整合后的數(shù)據(jù),你會(huì)怎么做呢? 在PHP中,最直觀...
摘要:然而,引擎很可能雖然這要看具體實(shí)現(xiàn)將會(huì)仍然將這個(gè)結(jié)構(gòu)保持一段時(shí)間,因?yàn)楹瘮?shù)在整個(gè)作用域上擁有一個(gè)閉包。 內(nèi)容 平時(shí)編寫代碼的時(shí)候很少關(guān)注細(xì)節(jié),對(duì)javascript深層也沒具體了解,下面針對(duì)平時(shí)寫代碼的形式分析、調(diào)整完善自己的代碼,這里以一個(gè)簡單例子分析js作用域和垃圾回收機(jī)制,通過塊級(jí)作用域處理一些細(xì)節(jié),提升自己代碼性能。 普通案例 在日常中最常見的代碼編寫方式: function ...
摘要:日志服務(wù)提供就是為解決以上輕量級(jí)埋點(diǎn)采集場景而生,我們可以在分鐘時(shí)間內(nèi)完成埋點(diǎn)和數(shù)據(jù)上報(bào)工作。服務(wù)功能包括實(shí)時(shí)采集與消費(fèi)。 摘要: 當(dāng)我們有一個(gè)新內(nèi)容時(shí)(例如新功能、新活動(dòng)、新游戲、新文章),作為運(yùn)營人員總是迫不及待地希望能盡快傳達(dá)到用戶,因?yàn)檫@是獲取用戶的第一步、也是最重要的一步。 點(diǎn)此查看原文:http://click.aliyun.com/m/40929/ 我們發(fā)送重要郵件時(shí)為...
閱讀 1306·2021-11-24 09:39
閱讀 2688·2021-09-30 09:47
閱讀 1339·2021-09-22 15:15
閱讀 2433·2021-09-10 10:51
閱讀 1976·2019-08-30 15:55
閱讀 2987·2019-08-30 11:06
閱讀 906·2019-08-30 10:53
閱讀 848·2019-08-29 17:26