[jboss-jira] [JBoss JIRA] Commented: (JBESB-443) Improve XSLT support and performance

Tom Fennelly (JIRA) jira-events at lists.jboss.org
Mon Feb 26 06:01:35 EST 2007


    [ http://jira.jboss.com/jira/browse/JBESB-443?page=comments#action_12354297 ] 
            
Tom Fennelly commented on JBESB-443:
------------------------------------

Initial figures indicated that Smooks overhead was in the order of 5%.  This was a single threaded test.  Over the weekend, I ran the same tests in a multithreaded env and made some interesting discoveries.

1.  Xalan Templates do not appear to be thread safe.  No race conditions occur or anything, but (only occasionally) the output from the transformation is not as expected.  Templates are supposed to be thread safe, so I need to investigate this a little further.  I'll post the JUnit test to the Xalan guys too and see if they can spot something.  I added synchronization (on the xslTemplate instance) around the 1 line of code that executes the XSL transform and all was fine there after.

2.  Streaming the result out of the transformer (Vs outputting DOM nodes) is faster (as you'd expect).  Using XSLT in Smooks means you must output to DOM (reasons at the bottom).  So, I changed the test such that the raw XSLT transform was streamed, but the Smooks XSLT transform was not streamed.  I soaked this test and got the following results...

(10 threads running concurrently)
||Num Messages||Message Size (bytes)||XSLT Total Time (ms)||Smooks Total Time (ms)||Smooks Overhead (ms)||Smooks Overhead (%)||
|220000|21527|35026125|44267091|9240966|26.38|
|220000|42527|37463037|47388848|9925811|26.49|
|220000|63527|38424500|48534444|10109944|26.31|
|220000|84527|39136499|49235713|10099214|25.81|
|220000|105527|39366967|49569895|10202928|25.92|
|220000|126527|39461529|49718222|10256693|25.99|
|220000|147527|39601930|49705494|10103564|25.51|
|220000|168527|39595413|49699031|10103618|25.52|
|220000|189527|39509691|49706373|10196682|25.81|
|220000|210527|39554558|49559243|10004685|25.29|

This soak test was running for just under 30 hours.

In Smooks, XSLT transforms must be output to DOM because Smooks performs fragment based transforms and (at least with Xalan) streamed output outputs the whole message (even if you only input a fragment).  If this wasn't the case, it could be used in Smooks.

> Improve XSLT support and performance
> ------------------------------------
>
>                 Key: JBESB-443
>                 URL: http://jira.jboss.com/jira/browse/JBESB-443
>             Project: JBoss ESB
>          Issue Type: Feature Request
>      Security Level: Public(Everyone can see) 
>          Components: Transformation Service
>            Reporter: Mark Little
>         Assigned To: Tom Fennelly
>            Priority: Critical
>             Fix For: 4.2
>
>
> Customers still want XSLT transformation support. Although Smooks supports XSLT, it may impose an overhead on some transformations versus native XSLT support. We need to see what the overhead is (if any) and maybe add native XSLT support within the ESB transformation service (a separate service implementation).

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        



More information about the jboss-jira mailing list