2011-07-13 27 views
1

所以目前我有一個加載,處理和顯示一個非常大的XML文件(超過兩兆)的一個小的Web應用程序。不幸的是,特別是隨着發生的後處理,請求需要大約6-7秒才能加載。有什麼方法可以加快xml文件的加載速度嗎?我能想到的最簡單的方法是將XML文件加載到內存中,然後訪問每個請求的內存,但我不確定如何在PHP中執行此操作。根據我對該技術的理解,使用FastCGI應該可以工作,但我不知道如何去構建必要的基礎設施以使其工作。什麼是加快在PHP中加載/處理XML的優雅方法?

所以,我想,你會建議大家加快網站?不幸的是,我現在已經習慣了XML文件的概念,並且向數據庫的過渡將非常難看(它基於樹)。但是任何人可以推薦的都會有所幫助

+0

你是如何加載和處理XML文件? – hakre

+0

嘗試APC:http://php.net/apc它可以幫助,但序列化DOMDocument對象爲APC最終可能慢於剛剛重新parseing每次XML。你必須測試並看看會發生什麼。 –

+0

是啊,與其他包含解決方案的後端數據相比,XML非常難看。你是否說你想讓用戶在你的網站上加載頁面時不讓頁面掛起? XML文件加載是否導致掛起? – MoarCodePlz

回答

3

閱讀與XMLReader XML文件,因爲它是非常快,並確保您使用LIBXML_COMPACT和/或LIBXML_PARSEHUGE閱讀。如果您的XML文件不經常更改,請考慮緩存(例如使用memcached)。此外,使用字節碼緩存(如APC)。

最重要的是:使用一個分析器,以確保它真的是時間太長了XML處理。

相關問題