ホームページ  >  記事  >  バックエンド開発  >  file_get_content シリーズ関数を使用した場合と、curl シリーズ関数を使用して画像を収集した場合のパフォーマンスの比較

file_get_content シリーズ関数を使用した場合と、curl シリーズ関数を使用して画像を収集した場合のパフォーマンスの比較

WBOY
WBOYオリジナル
2016-08-08 09:27:441136ブラウズ

会社の自動車 Web サイトのバックエンドにある自動車コンテンツは主に Auto Home からのものであるため、編集者の同僚は毎日手動で自動車を Auto Home に追加する必要があり、これは本当に面倒です。以来、この状況を変えるために、開発コーダーとしての私の使命が課せられました。 。 。それは、対応する車のホーム URL を貼り付けるだけで、データをバックエンドのフォームに自動的に入力できる機能を準備することです。現在、基本的な入力は実装されていますが、対応する車の写真アルバムはまだ実装されていません。入ってください。

以前にも写真を収集する機能を実行しましたが、Autohome のほとんどの車には大量の写真が含まれています。最初は、以前の写真収集方法、つまり file_get_content を使用して、対応するコンテンツを取得する予定でした。次に、画像のアドレスを照合し、file_get_content を使用してこれらの画像 URL のコンテンツを取得し、それをローカルにロードします。コードは次のとおりです。

リーリー

この方法は、写真が少ない場合は問題ありませんが、写真が多すぎる場合はかなりラグくなることがわかりました。 。それまでにオンラインにすることはおろか、ローカルテストを実行することも困難です。 Baidu の後、curl メソッドを使用して画像をダウンロードしました。テスト後は改善されましたが、それでも少し遅いと感じました。PHP に複数のスレッドがあれば素晴らしいでしょう。 。 。

いくつか情報を調べた結果、PHP のcurl ライブラリは実際にマルチスレッドをシミュレートできることがわかりました。つまり、curl_multi_* シリーズの関数を使用して書き直すと、コードは次のようになりました。

リーリー

マルチスレッドのコレクションは非常に新鮮です。一連のテストと比較の結果、curl マルチスレッドは file_get_content より 4 倍高速であり、時間は file_get_content の 3 ~ 5 倍であることがわかりました。 、効率を向上させるために、今後のコレクションでこの方法を使用してみてください。

上記では、file_get_content 関数シリーズを使用した場合と、curl 関数シリーズを使用して画像を収集した場合のパフォーマンスの比較を、関連する側面も含めて紹介しました。PHP チュートリアルに興味のある友人の参考になれば幸いです。

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