2010-04-07 77 views
1

我有一個使用XmlReader的進程。我已經做了很多工作來擠出最大的表現。到目前爲止,我們已經從使用Reader而不是XmlDoc或DataSet.GetXml()中獲得了巨大的收益。我們希望每秒能獲得多次XML,並且我希望避免每次重新創建讀取器的開銷。我已經緩存了XmlReaderSettings,但無論如何要重用XmlReader還是每次都需要重新創建它?有沒有辦法重用XmlReader?

回答

4

可能通過使用一些技巧來重用XmlReader,但不應該這樣做。它只用於一次性使用,所以它沒有任何使用不同來源重新啓動的方法。

試圖重用它可能會比創建新的閱讀器更多的工作。創建閱讀器相當便宜,而且幾乎不會成爲性能問題。

+0

它相對便宜。但我已經做了所有其他事情,所以我正在嘗試刮鬍子,因爲這是現在的瓶頸。不是表現是一個問題,但我內心的極客想在可能的情況下刮臉。雖然不成熟的優化是萬惡之源;但我無法幫助它 – uriDium 2010-04-07 09:28:01

2

這幾乎肯定是浪費精力。 XML需要來自某個地方,即網卡上的文件。 I/O操作比實現讀取器類所做的任何操作都慢幾個數量級。

典型的陷阱是您運行一個測試程序來重複使用相同的數據來分析代碼。這不是一個現實的測試,您將從緩存副本(例如文件系統緩存)檢索XML。這是非常快的,它運行在巴士速度。這在生產機器中不會這樣工作,數據幾乎肯定還沒有被緩存。例如它需要從磁盤讀取。那是非常慢