2011-04-17 98 views
3

因爲如果線程安全的話,我只能爲整個應用程序使用VTDGen的一個實例。VTD-XML線程安全嗎? (Java版本)

現在我正在爲每個請求實例化一個新的VTDGen,我正在考慮將它設置爲static,以便它只被初始化一次。

回答

1

你是什麼意思,完全由線程安全?在VTDGen處理一個文檔後,你可以從中獲得vtdNav,VTDGen肯定可以重用來處理下一個文檔。所以從這個意義上說,它是線程安全的,不僅在Java中,而且在C和C++中也是如此。

+0

我正在處理大量小的xml文檔。所以我想如果我讓VTDGen成爲一個類變量('static'),我可以進一步節省一些時間。但既然我不能保證在給定的時間只能處理一個文檔,那麼我想我別無選擇,只能爲我的servlet中的每個請求實例化VTGen。 – 2011-04-23 01:25:07

+0

我沒有看到任何問題,因爲vtdGen並不是那麼大的數據結構,因此實例化成本很小 – 2011-04-23 02:39:28

+0

@ vtd-xml-author因爲我們目前正在評估某些測試中的VTD,我們目前將其與SAX進行比較,我們注意到與SAX相比,VTD的解析初始設置需要相當長的時間(SAX平均爲16 ms,VTD平均爲226 ms(最小77 ms,最大441 ms))。在連續分析中,VTD平均比SAX快1/3(對於某些文檔,但幾乎總是比SAX慢)。您能否詳細介紹一下初始設置成本高以及VTD在連續分析中做了哪些工作,從而導致分析時間更短?請注意,我們沒有進行真正的熱身階段 – 2016-09-15 14:39:42