三愛企画ブログ

iwatani PHPで複数APIを利用する時の高速化

先日、
マッシュアップに必須!PHPで複数APIを同時に叩いて超高速化するサンプル
という記事を発見しました。

概要としては、通常APIを複数利用するときなどはAPIにリクエストし、結果が返ってきたら次のAPIにリスエストを行いますが
multiRequest関数を利用すると複数のAPIに同時にリクエストを行うため高速化されるというものです。

早速、試しに便利ツールTipsにあるRank Checker(Google|Yahoo|MSN|Baidu)を改良して実験してみます。今回は開発環境でsymfonyのレンダリングを使って計測します。

Rank Checker(Google|Yahoo|MSN|Baidu)はそれぞれの検索エンジンで検索結果を取得し、URLの順位を拾って表示しています。上位から順に確認して検索結果でURLが見つかった時点で次の動作に移るようにしてあるので検索結果にURLが見つからない場合が一番処理が長くなってしまいます。

例えば
キーワード 三愛企画
URL http://www.iii-planning.com/
をチェックしてみると2281msですが



キーワード ネイル
URL http://www.iii-planning.com/
だと29806msもかかってしまいます。



そこでmultiRequest関数を利用すると3433msまで短縮されました。



今回の結果では約9倍の処理速度が得られました。
処理速度はいろいろな状況で変化するので一概には言えませんが複数APIを利用するときにはかなり使えそうです。

タグ:, ,

iwataniさんの投稿 | Published in php | 2008.10.17