2010-01-25 67 views
1

我的應用程序爲每個請求加載一個xml並更新xml元素。爲每個請求加載XML

我一次有10到20個請求,xml加載過程對每個請求都花費一些時間,因爲它在同步塊中。

xml大小爲500 KB,並使用DOM解析器(Legacy代碼)。

有什麼方法可以提高性能嗎?

回答

0

我用Stax解析器替換了DOM解析器。解決了我的問題。

1

不知道更多關於您的應用程序,XML數據的其他使用者或您對環境的控制權,您可能會考慮將數據保留在應用程序服務器上(它是相同的文件還是一堆不同的文件,每個500kb?)並運行定期複製作業,以合理的時間間隔將更新的副本發送回原始源。

+0

如果有多個應用程序服務器(或其他作者),合併可能會很困難。 – Thilo 2010-01-25 08:58:07

+0

XML位於同一臺機器/服務器 – Tony 2010-01-25 09:56:48

+0

好的,但要清楚,原始問題DID表示這些文件位於不同的機器上。我們仍然沒有聽到的是,我們是在處理一個XML文件,還是所有這20-30個併發請求都使用不同的XML文件。 – Jay 2010-01-25 10:06:49

1

我用Stax解析器替換了DOM解析器。解決了我的問題。

VTD-XML速度更快,記憶效率更高。然而...我高度質疑需要解析XML文件請求。使用ServletContextListener將其緩存在應用程序範圍中,並且每分鐘或更短時間使用TimerTask保存已緩存的內容會更有效。

相關問題