simplexml_load_fileを使ってXMLを読み込む
$xml = simplexml_load_file('http://hoge.com/sample.xml');
(5.019sec)
んー…
XMLを提供している側のせいかだろうかと思いつつ、simplexml_load_fileを使うのを止めて代わりにPEAR:HTTP_Client+simplexml_load_stringを使って以下のように変えてみたらば。
HTTP_Clientを使ってXMLを読み込む
require_once 'HTTP/Client.php';
$client = new HTTP_Client();
$client->get('http://hoge.com/sample.xml');
$response = $client->currentResponse();
$xml = simplexml_load_string($response['body']);
var_dump($xml);
(0.040sec)
超速い!なんぞ。キャッシュも関係ないっぽい。
読み込むXMLのサイズが大きくなるとSimpleXMLは重くなるという噂を聞いたので、対象とするXMLを変えてみる。
ニコニコ動画APIの場合
- simplexml_load_fileを使ってXMLを読み込む → 0.131sec
- HTTP_Clientを使ってXMLを読み込む → 0.014sec
Tumblr APIの場合
- simplexml_load_fileを使ってXMLを読み込む → 0.841sec
- HTTP_Clientを使ってXMLを読み込む → 0.709sec
ほぼ日のRSSの場合
- simplexml_load_fileを使ってXMLを読み込む → 0.028sec
- HTTP_Clientを使ってXMLを読み込む → 0.018sec
このブログの場合
- simplexml_load_fileを使ってXMLを読み込む → 0.883sec
- HTTP_Clientを使ってXMLを読み込む → 0.640sec
…。
simplexml_load_fileの方が遅いのは変わらないけれども、それほど極端な差じゃないな。
あと形式によっても全然違う。
何か書式に問題があるのかなぁ。