2017-01-03 91 views
0

我們的Java應用程序使用XSL工作表將XML轉換爲「合適的」XML。問題是結果XML大約有20000多行,並且需要花費時間在Java中進行轉換(在生產計算機上大約需要30秒)。XSLT分組:「Muenchian方法」vs每個組

這是不能接受的業務,我正在尋找方法來優化我的XSLT。

目前我使用XSLT 2.0分組:

<xsl:for-each-group select="reportContent/transaction" group-by="transactionId"> 

我們的一個開發者認爲這是低性能的原因(這的確是如果我刪除分組,我得到一個2x升壓)和建議使用Muenchian方法進行分組。

在我開始重寫了大量的代碼,我想看看別人有經驗的東西都和重寫分組到Muenchian方法了性能的提升。

+1

爲什麼使用Muenchian分組替換'?要求你「重寫很多代碼」?如果您認爲這種方法更快,那麼實施它並對其進行分析以比較結果。 Muenchian分組是一種XSLT 1.0技術,我懷疑2017年的XSLT 2.0處理器無法以相當的性能實現「for-each-group」。至於提升性能,您可以查看提供編譯的商業軟件包。 –

回答

3

Muenchian分組的速度應該快於<xsl:for-each-group>(沒有內在的原因,實際上總有人會認爲它會慢一些)。但是隨着性能的提升,魔鬼總是處於細節之中,當然,除了在特定的XSLT 2.0實現環境中提出有關此類性能比較的問題之外,沒有任何意義。

30秒對於這項任務聽起來非常緩慢,我肯定會懷疑有可能改進。理想情況下,在開始任何實驗性調整之前,您應該深入研究以確定時間在哪裏。例如,像撒克遜的-TP:profile.html這樣的工具可能具有無法估量的價值。