我的應用程序爲每個請求加載一個xml並更新xml元素。爲每個請求加載XML
我一次有10到20個請求,xml加載過程對每個請求都花費一些時間,因爲它在同步塊中。
xml大小爲500 KB,並使用DOM解析器(Legacy代碼)。
有什麼方法可以提高性能嗎?
我的應用程序爲每個請求加載一個xml並更新xml元素。爲每個請求加載XML
我一次有10到20個請求,xml加載過程對每個請求都花費一些時間,因爲它在同步塊中。
xml大小爲500 KB,並使用DOM解析器(Legacy代碼)。
有什麼方法可以提高性能嗎?
我用Stax解析器替換了DOM解析器。解決了我的問題。
不知道更多關於您的應用程序,XML數據的其他使用者或您對環境的控制權,您可能會考慮將數據保留在應用程序服務器上(它是相同的文件還是一堆不同的文件,每個500kb?)並運行定期複製作業,以合理的時間間隔將更新的副本發送回原始源。
我用Stax解析器替換了DOM解析器。解決了我的問題。
VTD-XML速度更快,記憶效率更高。然而...我高度質疑需要解析XML文件每請求。使用ServletContextListener
將其緩存在應用程序範圍中,並且每分鐘或更短時間使用TimerTask
保存已緩存的內容會更有效。
如果有多個應用程序服務器(或其他作者),合併可能會很困難。 – Thilo 2010-01-25 08:58:07
XML位於同一臺機器/服務器 – Tony 2010-01-25 09:56:48
好的,但要清楚,原始問題DID表示這些文件位於不同的機器上。我們仍然沒有聽到的是,我們是在處理一個XML文件,還是所有這20-30個併發請求都使用不同的XML文件。 – Jay 2010-01-25 10:06:49