php+curlmultiinit_多线程 - PHP的curl_multi_init并发测试问题
問(wèn) 題
$query_arr = array();
for ($k = 0;$k<5;$k++){//請(qǐng)問(wèn)5代表的是什么?
$query_arr[] = 'http://www.segmentfault.com/json';
}
for ($i = 0;$i<70;$i++){//請(qǐng)問(wèn)70代表的是什么?
$ch = curl_multi_init();
$count = count($query_arr);
$ch_arr = array();
for ($j = 0; $j < $count; $j++) {
$query_string = $query_arr[$j];
$ch_arr[$j] = curl_init($query_string);
curl_setopt($ch_arr[$j], CURLOPT_RETURNTRANSFER, true);
curl_multi_add_handle($ch, $ch_arr[$j]);
}
$running = null;
do {
curl_multi_exec($ch, $running);
} while ($running > 0);
for ($l = 0; $l < $count; $l++) {
$results[$l] = curl_multi_getcontent($ch_arr[$l]);
curl_multi_remove_handle($ch, $ch_arr[$l]);
}
curl_multi_close($ch);
}
請(qǐng)問(wèn)代碼中的5和70分別代表了什么?
解決方案
創(chuàng)建了5個(gè)網(wǎng)址(ps:這5個(gè)網(wǎng)址是相同的) 一共執(zhí)行70次 ,也就是總共請(qǐng)求350次 可以理解為5個(gè)并發(fā) 執(zhí)行350次
類似于ab的 ab -c 5 -n 350 http://www.segmentfault.com/json
不過(guò)curl_multi_init是IO復(fù)用的方式 和真實(shí)的壓測(cè)接口還有一定的區(qū)別,可以去試試ab siege
或者用pthreads來(lái)執(zhí)行腳本來(lái)做并發(fā)測(cè)試
掃一掃關(guān)注IT屋
微信公眾號(hào)搜索 “ IT屋 ” ,選擇關(guān)注與百萬(wàn)開(kāi)發(fā)者在一起
總結(jié)
以上是生活随笔為你收集整理的php+curlmultiinit_多线程 - PHP的curl_multi_init并发测试问题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 和qc哪个发展更好_城西公司举办2020
- 下一篇: 汽车总感觉方向飘,是要换方向机吗?