2011-07-13 6 views
1

現在、私は非常に大きなxmlファイル(2メガバイトを超える)をロード、処理、および表示する小さなWebアプリケーションを持っています。残念ながら、特に後処理が行われると、要求には6〜7秒かかります。 xmlファイルの読み込み速度を上げる方法はありますか?私が考えることができる最も簡単な方法はXMLファイルを一度メモリにロードし、各リクエストにそのメモリにアクセスすることですが、PHPでそれを行う方法がわかりません。私がこの技術について理解していることから、FastCGIを使うのはうまくいくはずですが、もう一度、それを動作させるために必要なインフラストラクチャを構築する方法については気づいていません。PHPでXMLの読み込み/処理をスピードアップするためのエレガントな方法は何ですか?

だから、誰もがサイトのスピードアップをお勧めしますか?残念ながら、現時点ではXMLファイルの考え方に縛られています。データベースへの移行は非常に醜いでしょう(それは非常に木に基づいています)。しかし、何かを推薦することができます。

+0

どのようにXMLファイルを読み込んで処理していますか? – hakre

+0

APCを試してみてください:http://php.net/apc DOMdocumentオブジェクトをAPCにシリアル化すると、毎回XMLを再解析するよりも遅くなることがありますが、役立つかもしれません。テストして何が起こるか見る必要があります。 –

+0

うんXMLはソリューションを含む他のバックエンドデータと比べてかなり醜いです。サイトのページを読み込んでいるユーザーにページがぶら下がってしまうのを防ぎたいと言っていますか? XMLファイルの読み込みがハングしていますか? – MoarCodePlz

答えて

3

XMLReaderでXMLファイルを読むのはかなり速いので、LIBXML_COMPACTおよび/またはLIBXML_PARSEHUGEを必ず読んでください。あなたのXMLファイルがそれを頻繁に変更しないならば、キャッシュを考慮してください(例えばmemcachedを使って)。また、バイトコードキャッシュ(APCなど)を使用します。

重要:Profilerを使用して、実際にはXML処理が長時間かかることを確認してください。

関連する問題