2

私は他の誰かが書いたクラスを使用して、自分のものではないWebサイトに接続しようとしています。これはhttp://www.futhead.comのようなもので、EAJSONファイルを使用してプレーヤーなどを検索できます。

ただし、ページとスクリプトは機能しますが、毎回ロードするのに4/5秒かかります。

これはcurlの使用が原因である可能性があると思います。ここでいくつかの回答を探しましたが、実際には何も改善されませんでした。速度を向上させる他のオプションはありますか?

$ch = curl_init($login);                                                                    
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");                                                                     
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);                                                                  
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_HEADER, true);                
curl_setopt($ch, CURLOPT_HTTPHEADER, array(                                                                          
'Content-Type: application/x-www-form-urlencoded',                                                                                
    'Content-Length: ' . strlen($data_string))                                                                       
);                                                                                                                   
$response = curl_exec($ch);
curl_close($ch);
4

1 に答える 1

1

そのcurlリクエストの実行頻度を減らしてみてください。ページにアクセスするたびに発生する場合は、おそらく多すぎます。

サーバーにより多くの RAM とコアを配置でき、より優れた ISP を取得できます。

あなたの github コードについて....Q&A 形式は、実際にはオープンな「コードを修正する」タイプの質問用ではありません。あなたには多くの時間消費の原因があり、あなたのコードが関係しているように思えます...しかし、ほとんどはネットワーク関連です。curl の実行を高速化するための適切な答えはありません (接続性の向上を除いて)。

編集: 質問者は、サーバーのパフォーマンスを改善する試みを行いました:

リファクタリングの必要性を認める時が来ました。私はあなたの接続を読みました。あなたのConnectorクラス関数connect()では、4 つの連続した curl 操作を行います。毎回、意図的に (しかし必然的に?) curl ハンドルを閉じます。毎回同じサーバーに話しかけていますよね?

コードをまとめて変更する必要があります。それは私たちの最高に起こります。

于 2012-10-22T22:14:23.170 に答える