« 激重Firefox 56の対策 Main Greasemonkeyでユーザースクリ... »

PHPのfile_get_contents()が激重だった… ⇒ cURLへ変更

アマゾンにアクセスして書誌情報を取得するスクリプトを書いていたら、Rubyの場合はけっこうサクサク動くのにPHPだと、1件の情報を取得するのにも10数秒かかったりと動きがもっさりしていた。

それぞれ、使っているライブラリやらアマゾンで取得する情報の量の大小などであって動作に違いがあるのかと思っていたが、PHP側で情報取得に使っていた@simplexml_load_file()が内部的にfile_get_contents()を呼び出して?いて、それが激重だったらしい…。

該当部分をcURLでの取得処理に変えてみた。

処理時間を計測してみたのがこちら:

(1件の検索を4回)×2回繰り返した場合

方法

時間

総時間
1.

cURL

27秒+34秒

1分1秒
2.

simplexml_load_file

2分3秒+1分33秒

3分36秒
3.

simplexml_load_string + file_get_contents

2分13秒+1分39秒

3分52秒

前にcURLに切り替えた際にはせいぜい時間は2/3になるかならないか程度かなと思っていたが、今回測ってみるとなんと約1/4になっていた!

file_get_contents()遅過ぎ…。

リンク

Leave a comment

Your comment