Hi, We are using Xalan-C++ version 1.10 in an app which spends almost all its time in doing xsl transfomations. I am looking to optimize its performance if possible. The app applies a compiled stylesheet repeatedly on input "strings" that are about 5k long and produce and xml output that is also about 5k long.
1) The input string looks like this <<?xml version="1.0"><dummyroot>LONG XMLENCODED STRING</dummy root> 2) stylesheet converts the input to a "proper" xml output". The logic in style sheet is bunch of if and substr statements. like this .... <!-- sample snippet from style sheet --> <AccountNumber> <xsl:value-of select="normalize-space(substring(.,2058,10))"/> </AccountNumber> <xsl:if test="string-length(normalize-space(substring(.,9,12)))>0"> <MyIdentifier> <xsl:value-of select="normalize-space(substring(.,9,12))"/> </MyIdentifier> </xsl:if> 3) This is running on sun solaris and a typical analyzer output shows xalanc_1_10::XalanVector<unsigned short,xalanc_1_10::MemoryManagedConstructionTraits<unsigned short> >::insert(unsigned short*,const unsigned short*,const unsigned short*) takes 27.109 (76.33%) of User time. which is being called from xalanc_1_10::FunctionSubstring::execute(xalanc_1_10::XPathExecutionContext&,xalanc_1_10::XalanNode*,const xalanc_1_10::XObjectPtr,const xalanc_1_10::XObjectPtr,const xalanc_1_10::XObjectPtr,const xercesc_2_7::Locator*)const Note that stylesheet does have lot of substring calls so code should spend most of the time there. Best, HB.