2011-01-14 6 views
1

次のコードを実行すると、応答に10〜12秒かかります。なぜTwitterのAPI呼び出しが遅いのですか?

Twitterまたは当社のサーバーに問題がありますか?

これは私たちのウェブサイトにつぶやきを表示するコードの一部であり、12秒の読み込み時間は受け入れられないため、本当に知っておく必要があります。

function get_latest_tweets($username) 
    { 
    print "<font color=red>**". time()."**</font><br>"; 
    $path = 'http://api.twitter.com/1/statuses/user_timeline/' . $username.'.json?include_rts=true&count=2'; 
    $jason = file_get_contents($path); 
    print "<font color=red>**". time()."**</font><br>"; 
    } 

ブラウザ(http://api.twitter.com/1/statuses/user_timeline/ ユーザ名 .jsonにURLを入れたおかげ

+0

なぜ特定のWebサービスが遅いのかは分かりません。私たちがWebサービスについて話しているように、Webを遅くすることはすべて、twitter呼び出しにも適用できます。 –

+0

私はなぜそれが長くかかるのか分かりません。しかし一方で、修正されるまでローカルキャッシュを使用することができます。 – Simon

+0

ええと、手動でファイルをダウンロードするだけであれば、サーバーのAPIリクエストで取得する速度とほぼ同じです。 特定の時間内に要求が多すぎると、サーバーが要求を絞っている可能性があります。 – hangy

答えて

1

?include_rts =真&数= 2 )ページが表示されるまでどれくらい時間がかかりますか?迅速な場合は、サーバーで検索を開始する必要があります。

+0

こんにちはマット、よろしくお願いします。それはブラウザを介して行われると速いので、何か他のものでなければなりません。見た目はどこから始めるのですか?ありがとう – williamsdb

+0

私はserverfault.com(stackoverflowの姉妹サイト)でサーバーの専門家と言葉を持っています。彼はあなたに役立つかもしれない1つの投稿ですhttp://serverfault.com/questions/50273/howto-monitor-identify-and-debug-slow-requests-in-apache2 –

1

要求にfile_get_contents()の代わりにcurlを使用すると、応答が圧縮されます。ここで私が使用しているカール関数です。

function curl_file_get_contents($url) 
{ 
    $curl = curl_init(); 

    curl_setopt($curl,CURLOPT_URL,$url); //The URL to fetch. This can also be set when initializing a session with curl_init(). 
    curl_setopt($curl,CURLOPT_RETURNTRANSFER,TRUE); //TRUE to return the transfer as a string of the return value of curl_exec() instead of outputting it out directly. 
    curl_setopt($curl,CURLOPT_ENCODING , "gzip"); 

    curl_setopt($curl, CURLOPT_FAILONERROR, TRUE); //To fail silently if the HTTP code returned is greater than or equal to 400. 
    curl_setopt($curl,CURLOPT_SSL_VERIFYPEER, false); 
    curl_setopt($curl, CURLOPT_FOLLOWLOCATION, TRUE); 

    $contents = curl_exec($curl); 
    curl_close($curl); 

    return $contents; 
} 
関連する問題