在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/PHP  Linux/ 使用 php curl 如何加快速度?

使用 php curl 如何加快速度?

我是使用 php curl 與對(duì)方的數(shù)據(jù)庫做互動(dòng)

clipboard.png

一頁可能會(huì)跑三至五個(gè) curl 程式

clipboard.png

我用谷歌瀏覽器看到有一個(gè)項(xiàng)目會(huì)跑至少3秒左右
我在想是不是curl的問題
因?yàn)槲铱雌渌际莔s單位...慢不到哪去

curl_setopt($ch, CURLOPT_POST, 1);
  curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
  curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
  curl_setopt($ch, CURLOPT_TIMEOUT, 5);
  curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);

我把這段寫了一個(gè)function
所以當(dāng)該頁需要哪一隻API我就會(huì)啟用它
因此有時(shí)候一頁可能會(huì)需要三至五個(gè)
花的時(shí)間特久
想問說有沒有其他種寫法,能夠更快?!

回答
編輯回答
只愛你

CURL速度慢可能與Expect:100-Continue有關(guān),可以修改下代碼試驗(yàn)一下:
http://www.laruence.com/2011/...

2018年2月3日 14:34
編輯回答
來守候

慢,是因?yàn)橛蛎馕龅膯栴},可以使用curl的一個(gè)方法先將域名解析為對(duì)應(yīng)的IP

// 如請(qǐng)求http://baidu.com, ping 出 IP 地址
$url = 'http://220.15.23.5/';
// 設(shè)置頭信息(當(dāng)用IP直接訪問時(shí),加這個(gè)如:https://baibu.com -> 220.15.23.5)
 curl_setopt($ci, CURLOPT_HTTPHEADER, array('Host:baibu.com'));
2018年8月23日 20:26
編輯回答
夏木

覺得自己寫的不保險(xiǎn)可以掛個(gè)小庫咯……比如Guzzle這種……但你給的這些代碼真的看不出來啥,訪問慢跟很多因素都有關(guān)系,不是你這一小段配置就能卡死的。。。

2018年5月7日 00:41
編輯回答
臭榴蓮

謝邀。你可以抓個(gè)包分析一下,有多種可能

  1. 如果從執(zhí)行curl到發(fā)送dns請(qǐng)求(如果你的目標(biāo)主機(jī)名是個(gè)域名的話)的時(shí)間過長,那就是curl啟動(dòng)太慢(我對(duì)php也不熟,不知道php執(zhí)行curl要不要fork)
  2. 如果從發(fā)送dns請(qǐng)求到得到dns回復(fù)的時(shí)間過長,那就是域名解析太慢,可以換個(gè)快一點(diǎn)的dns或者直接使用ip
  3. 如果從發(fā)送http請(qǐng)求開始(可以從發(fā)送syn包開始算)到得到http回復(fù)的時(shí)間過長,那就是對(duì)方查詢效率較低,不是你的問題

還可以用chrome發(fā)送同樣的請(qǐng)求,看時(shí)間上有什么區(qū)別。

當(dāng)然還有可能有別的原因,比如網(wǎng)絡(luò)原因,如果你網(wǎng)絡(luò)狀況不好的話當(dāng)然也會(huì)慢了。

2018年6月20日 23:24