I had an email from a customer the other day that started "It is quite unusual for Saxon's performance to be worse than Xalan's". It turned out to be an XSLT stylesheet that was taking around 3950ms under Saxon, and just 1370ms under Xalan. A quick look at the application showed that it was using a DOMSource and a DOMResult. I changed that to use a Saxon TinyTree for both the source and result (which only involved changing a couple of lines of code) and the Saxon timings came down to about 400ms. Pride restored...   more »