亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

PHP中巧用curl 并發(fā)減少獲取第三方網(wǎng)頁內(nèi)容時間

王巖威 / 3611人閱讀

摘要:老的訪問方式以及耗時統(tǒng)計(jì)耗時耗時秒并發(fā)訪問方式以及耗時統(tǒng)計(jì)耗時耗時秒帥氣吧整個頁面訪問后端接口的時間節(jié)省了一半

前言:

在我們平時的程序中難免出現(xiàn)同時訪問幾個接口的情況,平時我們用curl進(jìn)行訪問的時候,一般都是單個、順序訪問,假如有3個接口,每個接口耗時500毫秒那么我們?nèi)齻€接口就要花費(fèi)1500毫秒了,這個問題太頭疼了嚴(yán)重影響了頁面訪問速度,有沒有可能并發(fā)訪問來提高速度呢?今天就簡單的說一下,利用curl并發(fā)來提高頁面訪問速度, 希望大家多指導(dǎo)。

1、老的curl訪問方式以及耗時統(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 "耗時:{$time}";
?>

耗時:0.614秒

2、curl并發(fā)訪問方式以及耗時統(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 "耗時:{$time}";
?>

耗時:0.316秒 帥氣吧整個頁面訪問后端接口的時間節(jié)省了一半

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/30258.html

相關(guān)文章

  • ionic 旅途-- 一起來填坑

    摘要:在中巧用解決跳轉(zhuǎn)到第三方平臺時不能回調(diào)的問題比如支付在開發(fā)中遇到不少的坑,絕大部分解決了但是在我們的中如果跳轉(zhuǎn)到第三方網(wǎng)站上時,那么問題來了此時我們的是不能監(jiān)聽到你在其它網(wǎng)站上的事件的,所以當(dāng)你想要回退到我們自己上時請緊握你的蛋小編在開發(fā)這 在ionic中巧用iframe解決跳轉(zhuǎn)到第三方平臺時不能回調(diào)的問題-比如支付 在ionic開發(fā)中遇到不少的坑,絕大部分解決了但是在我們的app...

    qieangel2013 評論0 收藏0
  • PHP面試之二:高并發(fā)與大數(shù)據(jù)

    摘要:三態(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ìn)程,程序執(zhí)行流的最小單元。一個進(jìn)程下有多個線程來完成不同的工作稱之為多線程。 web資源防盜鏈 盜鏈?zhǔn)鞘裁矗?為什么要防? 在自己頁面上顯示一些不是自己服務(wù)器的資源(圖片、音頻、視頻、css、js等)由于別人盜鏈你的資源會加重你的服務(wù)器負(fù)擔(dān),所以我們需要防止可能會影響統(tǒng)計(jì) 防盜鏈...

    Ashin 評論0 收藏0
  • PHP實(shí)現(xiàn)并發(fā)請求

    摘要:不支持多線程模式和回調(diào)處理,因此內(nèi)部腳本都是同步阻塞式的,如果你發(fā)起一個的請求,那么程序就會阻塞,直到請求返回結(jié)果,才會繼續(xù)執(zhí)行代碼。參考資料手冊手冊預(yù)定義常量中實(shí)現(xiàn)多線程請求詳解每次使用同時并發(fā)多少請求合適簡書多線程及原理 后端服務(wù)開發(fā)中經(jīng)常會有并發(fā)請求的需求,比如你需要獲取10家供應(yīng)商的帶寬數(shù)據(jù)(每個都提供不同的url),然后返回一個整合后的數(shù)據(jù),你會怎么做呢? 在PHP中,最直觀...

    zhangfaliang 評論0 收藏0
  • javascript塊級作用域處理閉包和釋放內(nèi)存的垃圾回收

    摘要:然而,引擎很可能雖然這要看具體實(shí)現(xiàn)將會仍然將這個結(jié)構(gòu)保持一段時間,因?yàn)楹瘮?shù)在整個作用域上擁有一個閉包。 內(nèi)容 平時編寫代碼的時候很少關(guān)注細(xì)節(jié),對javascript深層也沒具體了解,下面針對平時寫代碼的形式分析、調(diào)整完善自己的代碼,這里以一個簡單例子分析js作用域和垃圾回收機(jī)制,通過塊級作用域處理一些細(xì)節(jié),提升自己代碼性能。 普通案例 在日常中最常見的代碼編寫方式: function ...

    vpants 評論0 收藏0
  • 巧用 Img / JavaScript 采集頁面數(shù)據(jù)

    摘要:日志服務(wù)提供就是為解決以上輕量級埋點(diǎn)采集場景而生,我們可以在分鐘時間內(nèi)完成埋點(diǎn)和數(shù)據(jù)上報工作。服務(wù)功能包括實(shí)時采集與消費(fèi)。 摘要: 當(dāng)我們有一個新內(nèi)容時(例如新功能、新活動、新游戲、新文章),作為運(yùn)營人員總是迫不及待地希望能盡快傳達(dá)到用戶,因?yàn)檫@是獲取用戶的第一步、也是最重要的一步。 點(diǎn)此查看原文:http://click.aliyun.com/m/40929/ 我們發(fā)送重要郵件時為...

    sunny5541 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<