ホームページ  >  記事  >  バックエンド開発  >  並列 Curl リクエストは複数の JSON データ取得のパフォーマンスをどのように向上させることができますか?

並列 Curl リクエストは複数の JSON データ取得のパフォーマンスをどのように向上させることができますか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-12 14:20:01137ブラウズ

How Can Parallel Curl Requests Enhance Performance for Multiple JSON Data Retrieval?

PHP Parallel Curl リクエスト: 複数の JSON データ取得のパフォーマンスの向上

file_get_contents() を使用して複数の JSON データを取得する従来のアプローチでは時間がかかる場合があります- 逐次的な性質のため消費が激しい。この記事では、並列カール リクエストを使用したより効率的なソリューションを検討します。

指定されたコードは、URL のリストを順番に反復処理し、各 URL から JSON データを取得して配列に保存する、一般的なアプローチを示しています。 。ただし、この方法では、特に多数の URL を処理する場合にパフォーマンスが低下する可能性があります。

この問題を克服するには、マルチカール リクエストを活用できます。マルチカールは、複数のカールリクエストを同時に並列実行できるようにする技術です。このアプローチにより、次のリクエストを開始する前に各リクエストが完了するのを待つ必要がなくなり、プロセスが大幅に高速化されます。

提供されたコード スニペットは、マルチカール リクエストの実装を提供します。

$nodes = array($url1, $url2, $url3);
$node_count = count($nodes);

$curl_arr = array();
$master = curl_multi_init();

for($i = 0; $i < $node_count; $i++)
{
    $url =$nodes[$i];
    $curl_arr[$i] = curl_init($url);
    curl_setopt($curl_arr[$i], CURLOPT_RETURNTRANSFER, true);
    curl_multi_add_handle($master, $curl_arr[$i]);
}

do {
    curl_multi_exec($master,$running);
} while($running > 0);

for($i = 0; $i < $node_count; $i++)
{
    $results[] = curl_multi_getcontent  ( $curl_arr[$i]  );
}
print_r($results);

要約すると、並列カールリクエストにより、異なる URL から複数の JSON データをフェッチする際のパフォーマンスが大幅に向上します。この手法は、リクエスト間の待機時間を最小限に抑え、データ取得の高速化につながるため、多数の URL を操作する場合に特に有益です。

以上が並列 Curl リクエストは複数の JSON データ取得のパフォーマンスをどのように向上させることができますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。