[
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